簡體   English   中英

如何使用Selenium Webdriver在頁面上查找僅可見元素?

[英]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: noneopacity: 0 ,我在另一個問題中找到它: 如何檢查元素是否可見與WebDriver

要檢查頁面上是否顯示了任何元素,即使根據提供的HTML DOM ,可見的<span>不在父節點中位於第一個位置,您也可以使用以下解決方案:

  • 使用XPath

     @driver.find_element(:xpath,"//span[@class='some class']").displayed? 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM