检查视口中的可见性(木偶操纵者)

pat*_*cia 5 javascript cucumber puppeteer

如何使用 Puppeteer 检查 HTML 元素在视口(可见区域)内是否可见?例如,如果我必须滚动才能看到一个按钮,那么它是不可见的。

page.waitForSelector('#element', { visible: true })
Run Code Online (Sandbox Code Playgroud)

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

是否有任何方法可以检查元素在视口中的可见性?

Gra*_*ler 7

您可以使用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.
}
Run Code Online (Sandbox Code Playgroud)