尽管选择了按钮,但 Puppeteer 并未激活按钮点击
2019-07-31
1112
我正尝试自动登录一个骗子发给我朋友的简单网站。我可以使用 puppeteer 填写文本输入,但当我尝试使用它点击按钮时,它所做的只是激活按钮颜色变化(当鼠标悬停在按钮上时会发生这种情况)。我还尝试在关注输入字段的同时点击回车键,但这似乎不起作用。当我在控制台中使用 document.buttonNode.click() 时,它可以工作,但我似乎无法用 puppeteer 模拟它
我还尝试使用 waitFor 函数,但它一直告诉我“无法读取属性 waitFor”
const puppeteer = require('puppeteer');
const chromeOptions = {
headless:false,
defaultViewport: null,
slowMo:10};
(async function main() {
const browser = await puppeteer.launch(chromeOptions);
const page = await browser.newPage();
await page.goto('https://cornelluniversityemailverifica.godaddysites.com/?fbclid=IwAR3ERzNkDRPOGL1ez2fXcmumIYcMyBjuI7EUdHIWhqdRDzzUAMwRGaI_o-0');
await page.type('#input1', '[email protected]');
await page.type('#input2', 'password');
// await this.page.waitFor(2000);
// await page.type(String.fromCharCode(13));
await page.click('button[type=submit]');
})()
1个回答
此网站会阻止不安全的事件,您需要在点击前等待。
只需在点击前添加
await page.waitFor(1000);
。此外,我建议将
waitUntil:"networkidle2"
参数添加到
goto
函数。
因此,这是工作脚本:
const puppeteer = require('puppeteer');
const chromeOptions = {
headless: false,
defaultViewport: null,
slowMo:10
};
(async function main() {
const browser = await puppeteer.launch(chromeOptions);
const page = await browser.newPage();
await page.goto('https://cornelluniversityemailverifica.godaddysites.com/?fbclid=IwAR3ERzNkDRPOGL1ez2fXcmumIYcMyBjuI7EUdHIWhqdRDzzUAMwRGaI_o-0', { waitUntil: 'networkidle2' });
await page.type('#input1', '[email protected]');
await page.type('#input2', 'password');
await page.waitFor(1000);
await page.click('button[type=submit]');
})()
Yevhen Laichenkov
2019-07-31