I am trying to automate login to Cisco Webex meetings. Couldn't find anything online so decided to try out puppeteer and make my own script to do that. So the issue I am facing is I cannot select the input fields because their attributes are dynamically generated. Plus they only have class attributes. I tried selecting parent divs and narrowing down to the input but it didn't work. I also tried to list the inputs in the page with page.evaluate() and querySelectorAll() and then choosing the inputs from there with click(). But somehow I am returned an empty object. I have also tried adding a 6s timeout but still no success. Btw this works in chrome console. I am baffled as to why it wouldn't work in node with puppeteer it could have solved my problem (maybe). I also tried using the mouse.click() but no success (Actually I am new to puppeteer and I don't exactly know how this method works. Tried entering different axes but no luck, if that is actually how it should be done). Please correct me if I am wrong somewhere. Any help would be much appreciated.
Environment:
- Puppeteer version:5.3.1
- Platform / OS version:Mac OS Catalina
- Node.js version:14.9.0
- Chrome version: 83.0.4103.116 (Official Build) (64-bit)
- URL: https://glsuniversity.webex.com/webappng/sites/glsuniversity/meeting/download/20868835766c4fcf82b8a7fa60a27761?siteurl=glsuniversity&MTID=m84fbf6908602bde9fb8f025ee45308ac
What steps will reproduce the problem? Trying to select an input field or a button that has its attributes generated dynamically
What is the expected result? Select the input field and type in it.
What happens instead?
Error: Evaluation failed: TypeError: Cannot read property of null
EDIT 1: Directly selecting the input gives me this
Error: No node found for selector
EDIT 2: waitForSelector() gives a timeout 30000ms exceeded error
EDIT 3: Edited the exact link I have to work on
EDIT 4: I tried getting the placeholder attribute but no luck