通过元素ID单击带有p的复选框

时间:2019-10-11 18:03:56

标签: node.js puppeteer

我有这个木偶代码:

(async () => {
  const browser = await puppeteer.launch({ args: ['--no-sandbox'] });
  const page = await browser.newPage();

  await page.goto("https://myurl.com/page");
  await page.waitForSelector("#select-all-checkbox");

  var bodyHTML = await page.content();
  console.log(bodyHTML + "\n\n");

  await page.click("#select-all-checkbox");
  await page.close();
  await browser.close();
})();

将HTML登录到控制台,我已验证访问的页面具有以下HTML:

<label><input type="checkbox" name="" id="select-all-checkbox" value="" checked=""><span class="ifaFs"><span data-testid="icon-checkbox-someselected" class="hdDWuD"></span></span></label>

我在页面上单击此错误。单击行:

  

(节点:3827)UnhandledPromiseRejectionWarning:错误:节点为   不可见或不是HTMLElement
  在ElementHandle._clickablePoint(/path/to/node_modules/puppeteer/lib/JSHandle.js:217:13)
  在process._tickCallback上(内部/进程/next_tick.js:68:7)
  -ASYNC-
    在ElementHandle。 (/path/to/node_modules/puppeteer/lib/helper.js:111:15)
    在DOMWorld.click(/path/to/node_modules/puppeteer/lib/DOMWorld.js:367:18)
    在process._tickCallback上(内部/进程/next_tick.js:68:7)
  -ASYNC-
    在帧。 (/path/to/node_modules/puppeteer/lib/helper.js:111:15)
    在Page.click(/path/to/node_modules/puppeteer/lib/Page.js:1037:29)

1 个答案:

答案 0 :(得分:0)

在上面的代码示例中,这就是我解决问题的方式。

slackclient