尽管选择了按钮,

时间:2019-07-31 00:27:07

标签: javascript node.js web-scraping puppeteer

我正在尝试自动登录一个骗子发送给我朋友的简单网站。我可以使用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]');
})()

1 个答案:

答案 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]');
})()