斯普林特:按风格查找

时间:2017-12-18 04:13:23

标签: python dom web-scraping screen-scraping splinter

我在python上使用splinter模块。我需要检查一个元素在页面上是否可见,而且看似唯一的告诉方式是style="display: none;",我无法找到检测方法。

如何检查?

1 个答案:

答案 0 :(得分:1)

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

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

请注意.visible基于is_displayed() python-selenium方法,该方法基于this WebDriver specification"自然"处理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