【问题标题】:Handle Modal Dialog box input fields using puppeteer使用 puppeteer 处理模态对话框输入字段
【发布时间】:2018-02-27 15:45:44
【问题描述】:
我有一个网页,有注册按钮。单击注册后,它会显示模式对话框。我可以单击并获取对话框,但无法在对话框输入字段中输入值。以下代码的任何帮助
const puppeteer = require('puppeteer');
puppeteer.launch({headless: false}).then(async browser => {
const page = await browser.newPage();
await page.goto('https://paytm.com/paytmwallet');
page.waitForSelector('#site-wrapper > menu-user-screens > div > div > div > div.bigContainer-profile > div > ul > li.last > button');
const login=await page.$('#site-wrapper > menu-user-screens > div > div > div > div.bigContainer-profile > div > ul > li.last > button');
login.click();
await page.type('#input_0','87777799')
});
【问题讨论】:
标签:
javascript
unit-testing
automated-tests
puppeteer
【解决方案1】:
在尝试输入之前,您必须确保选择器可用,就像您为站点包装器所做的那样,因此您需要做的就是将标有星号的行添加到您的 cade 库中,您就可以开始了。
const puppeteer = require('puppeteer');
puppeteer.launch({headless: false}).then(async browser => {
const page = await browser.newPage();
await page.goto('https://paytm.com/paytmwallet');
page.waitForSelector('#site-wrapper > menu-user-screens > div > div > div > div.bigContainer-profile > div > ul > li.last > button');
const login=await page.$('#site-wrapper > menu-user-screens > div > div > div > div.bigContainer-profile > div > ul > li.last > button');
login.click();
**page.waitForSelector('#input_0', {timeout:30000})
await page.type('#input_0','87777799')
});