Splinter:按风格查找

Splinter: Find by style

我在 python 上使用 splinter 模块。我需要检查一个元素在页面上是否可见,似乎唯一的判断方式是 style="display: none;",但我找不到检测方法。

如何检查?

如果您需要检查元素是否可见,请使用 .visible attribute:

browser.find_by_css('h1').first.visible

请注意,.visible 基于 is_displayed() python-selenium 方法,该方法基于 this WebDriver specification,"naturally" 处理 style="display: none;" 个案等等。


如果您出于某种原因需要使用 style 值来定位元素,您当然可以使用 CSS 选择器来实现:

browser.find_by_css('[style="display: none;"]')

但这通常很脆弱,您应该寻找其他方法来定位此元素。

请记住,您也可以始终定位多个元素,然后仅过滤不可见的元素,例如:

for h1 in browser.find_by_css('h1'):
    if not h1.visible:
        # found an invisible h1 here