【发布时间】:2015-11-26 00:34:28
【问题描述】:
我想检查某些文本(比如“独角兽”)在使用 Selenium 的 HTML 页面上是否可见(如果重要,则使用 Python)。
但是,由于不相关的原因,该页面具有以下结构(简化):
<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 元素,并且其文本将包含搜索到的字符串,即使该字符串对用户实际上不可见。
如何检查页面上的某些文本是否可见,即使它跨越多个元素?
【问题讨论】:
-
也许你可以用beautifulsoup...看到这个答案:stackoverflow.com/a/27115266/499581
-
这需要我重新实现一个 CSS 解析器,因为实际的网页可能使用类而不是简单的
display: none。
标签: selenium