点击可见元素使用木偶
我正在尝试点击页面中的多个元素,但前提是这些元素都可见。 这很容易使用硒(使用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