检查视口中的可见性(木偶戏)

2022-02-24 00:00:00 puppeteer javascript cucumber

如何与Puppeteer一起检查HTML元素在视口(可见区域)内是否可见?例如,如果我必须滚动才能看到按钮,则该按钮不可见。

page.waitForSelector('#element', { visible: true })

page.waitForSelector函数不是我要找的,因为它只检查元素是否在DOM中并且没有用CSS属性隐藏。

有什么方法可以检查元素在视口中的可见性吗?


解决方案

可以使用elementHandle.isIntersectingViewport()检查元素在当前视口中是否可见:

const example = await page.$('#example');

if (await example.isIntersectingViewport()) {
  // The element IS visible within the current viewport.
} else {
  // The element IS NOT visible within the current viewport.
}

相关文章