点击可见元素使用木偶

我正在尝试点击页面中的多个元素,但前提是这些元素都可见。 这很容易使用硒(使用is_displayed ),但我似乎无法找到木偶的方式。 我正在尝试使用类似的东西

try {
    await page
      .waitForSelector(id, visible=true, timeout=0)
      .then(() => {
        element.click()
      });
...

但是,如果它是一个简单的元素,这不起作用:

<a class="cookie-close" href="#">
OK
</a>

我似乎也无法看到使用element.click中的element.click方法来实现它的方法。


与Selenium类似,正确答案也是使用Puppeteer的waitForSelector,它可以测试DOM元素的存在和可见性。

try {
  // Will throw err if element is not present and visible.
  await chromePage.waitForSelector("div.hello", {
    visible: true
  });
  await chromePage.click("div.hello");
} catch(err) {
  console.log(err);
}

您应该使用page.click()来实现点击。

请参阅Puppeteer API文档中的page.click(选择器,[选项]):https://github.com/GoogleChrome/puppeteer/blob/HEAD/docs/api.md#pageclickselector-options


不知道这是否是最有效的方法,但您可以尝试如下所示:

// returns null if element not present
let element = await page.evaluate(() => {
  return document.querySelector(id);
  });

// use jQuery to check if element is not hidden
if (element && !$(element).is(':hidden') {
  await page.click(id);
}
链接地址: http://www.djcxy.com/p/83589.html

上一篇: Click visible elements using puppeteer

下一篇: fade in/out div based on scroll