[英]How can I find visible only elements on a page with Selenium Webdriver?
我得到了一個頁面,上面有幾個同班同學的隱藏跨度。 我需要檢查,如果其中之一顯示在頁面上。 我試圖使用@driver.find_element(:class, 'some class').displayed?
但是如果可見范圍不是DOM上的該類的首位,它將返回false
。 有什么辦法可以解決嗎?
UPDATE
HTML
<html>
<head></head>
<body>
<div class="span1" style="display: none;">
<span class="some class">Some Error</span>
</div>
<div class="span2" style="display: none;">
<span class="some class">Some Error</span>
</div>
<div class="span3" style>
<span class="some class">Some Error</span>
</div>
</body>
</html>
除了使用style="display: none"
您還可以使用CSS類來不顯示以下元素:
.hidden {
display: none;
}
現在,您可以檢查元素是否具有此類。
UPDATE
如果您無法更改HTML,則可以使用element.isDisplayed()
函數,如果元素具有display: none
,則返回false display: none
或opacity: 0
,我在另一個問題中找到它: 如何檢查元素是否可見與WebDriver
要檢查頁面上是否顯示了任何元素,即使根據提供的HTML DOM ,可見的<span>
不在父節點中位於第一個位置,您也可以使用以下解決方案:
使用XPath :
@driver.find_element(:xpath,"//span[@class='some class']").displayed?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.