【问题标题】:Puppeteer's page.click() is working on some links but not othersPuppeteer 的 page.click() 正在处理一些链接,但不是其他链接
【发布时间】:2019-05-21 03:32:47
【问题描述】:

我正在使用 puppeteer 尝试自动化登录到我们网络本地的网页。 Chrome 会抛出正常的“您的连接不是私有的”https 错误。我可以点击“高级”和“继续”进入登录页面,但我想和 Puppeteer 一起玩。

下面是 HTML

<body>
  <div>
    <div>
      <button id="primary-button">Back to safety</button>
      <button id="proceed-button" class="secondary-button small-link hidden"></button>
      <button id="details-button" class="secondary-button small-link">Advanced</button>
    </div>
  </div>
</body>

我的尝试是将 .click() 发送到“高级”,然后将 .click() 发送到“继续”。但是都没有回应。

我已经能够使用 Puppeteer 启动 Google 并使用 page.click('.gb_d') 成功选择 Gmail 链接。所以也许我没有正确选择元素。

我的代码如下:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({headless: false, /*args:['--start-fullscreen','--window-size=1920,1040']*/});
  const page = await browser.newPage();
  await page.goto('https://10.26.200.215:17001/HORIZON', {waitUntil: 'networkidle2'});
  await page.setViewport({width: 1920, height: 1080});
  await page.waitForSelector('#proceed-button');
  await page.click('#proceed-button');



  //await browser.close();
})();

【问题讨论】:

  • 我很确定你不能用 Puppeteer 点击这些按钮,因为它们不是实际网站的一部分(而是 Chrome 的 UI)。如果您的服务器只能通过https 访问但没有有效的证书,那就是您需要解决的问题。

标签: javascript node.js puppeteer


【解决方案1】:

尝试将ignoreHTTPSErrors 选项设置为true:

puppeteer.launch({ ignoreHTTPSErrors: true, headless: false })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 2015-10-23
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    相关资源
    最近更新 更多