尽管选择了按钮,但Puppeteer仍未激活按钮



我正在尝试将登录自动化到一个简单的网站上,骗子发送了我的朋友。我可以使用Puppeteer填充文本输入,但是当我尝试使用它单击按钮时,它所做的就是激活按钮颜色更改(当鼠标徘徊在按钮上时发生(。我还尝试在关注输入字段时单击Enter,但这似乎不起作用。当我在控制台中使用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', '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]');
})()

此站点阻止无抵押事件,您需要在单击之前等待。

单击之前,只需添加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]');
})()

最新更新