我正在尝试自动登录一个骗子发送给我朋友的简单网站。我可以使用puppeteer来填充文本输入,但是当我尝试使用它来单击按钮时,它所做的只是激活按钮的颜色变化(当鼠标悬停在按钮上时发生)。我也尝试在集中在输入字段上时单击Enter,但这似乎不起作用。当我在控制台中使用document.buttonNode.click()时,它可以正常工作,但我似乎无法用伪娘来模仿
我也尝试使用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', 'hello@cornell.edu');
await page.type('#input2', 'password');
// await this.page.waitFor(2000);
// await page.type(String.fromCharCode(13));
await page.click('button[type=submit]');
})()
答案 0 :(得分: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', 'hello@cornell.edu');
await page.type('#input2', 'password');
await page.waitFor(1000);
await page.click('button[type=submit]');
})()