我希望用纯JavaScript(而不是jQuery)和Puppeteer来检查DOM元素是否可见,该怎么做?在这里“可见”指的是该元素通过CSS呈现,而不是隐藏的(例如通过
display: none
)。例如,我可以通过以下方式确定我的元素#menu
是否未被CSS规则display: none
隐藏:const isNotHidden = await page.$eval('#menu', (elem) => {
return elem.style.display !== 'none'
})
我怎样一般性地确定元素是否隐藏,而不只是通过 display: none
属性?
elem.getBoundingClientRect()
返回了可以进行测试的独特数据。 - AuxTacoelem.getBoundingClientRect()
在控制台上返回一个{}
,无论元素是否准备好:( - PayamB..evaluate()
在Puppeteer中使用。 - ggorlenJSON.stringify(elem.getBoundingClientRect())
吗?这很重要的原因是elem.getBounding...
是一个只读的DOMRect
而不是一个普通对象,所以 Puppeteer 的序列化似乎受到影响,无法捕获完整的对象。 - ggorlen