我想检查使用Selenium(Python如果有问题)在HTML页面上的某些文本(如“独角兽”)是否可见。检查文本是否在HTML元素的页面上可见
然而,对于不相关的原因的页面具有以下结构(简化):
<div>
<span style="display: none">A</span> <span style="display: none">unicorn</span>
</div>
在Lettuce Webdriver和Aloe Webdriver使用的检查是:
driver.find_elements_by_xpath(
'//*[contains(normalize-space(.),"{content}")'.format(text))
,然后检查is_displayed
返回的元件。但是,这将找到外部div
元素,并且其文本将包含搜索的字符串,即使该字符串实际上对用户不可见。
如何检查页面上的某些文字是可见即使它跨越多个元素?
各自的错误:Aloe Webdriver bug,Lettuce Webdriver bug。
你可以使用美丽的可能...看到这个答案:http://stackoverflow.com/a/27115266/499581 –
这需要我重新实现一个CSS分析器,因为实际的网页可能会使用类而不是简单的'显示:无'。 – Koterpillar