2017-05-24 92 views
0

我使用的是java的selenium,我試圖測試搜索場景。之後予執行搜索不適合的檢索關鍵字被隱藏與隱藏屬性的HTML元素(參見下面的例子中,第一元件不匹配所述搜索標準和所述第二一樣):Selenium跳過帶有隱藏屬性的html元素

<ion-item-sliding class="item-wrapper" hidden=""> 
 
    <button class="item item-block item-md" ion-item=""> 
 
    <p>I am hidden</p> 
 
    </button> 
 
</ion-item-sliding> 
 

 
<ion-item-sliding class="item-wrapper"> 
 
    <button class="item item-block item-md" ion-item=""> 
 
    <p>I am not</p> 
 
    </button> 
 
</ion-item-sliding>

我的目標是找到可見元素(示例中的第二個)中的文本。當我使用簡單選擇

//按鈕[@類=「項目項目塊項-MD」]

隱藏元件被發現,所以我使用這樣的選擇器

//離子項滑動[@類= '項目的包裝器' 而不是 @類型= '隱藏'] //按鈕[@類= '項目項目塊項-MD']。 ..

但沒有運氣。請諮詢有關選擇器的任何想法/文檔。

回答

2

這裏你需要的是利用getAttribute函數。此調用所做的是,如果它的設置返回一個屬性值,否則返回一個屬性值。

您可以使用通過你的選擇FindElements,並逐一找到的元素,只返回一個地方

getAttribute("hidden") != null 

希望這有助於。看到

2

使用isDisplayed()方法,如果該元素獲取文本,這樣

List <WebElement> elements = driver.findElements(By.cssSelector(".item.item-block.item-md")); 
     for(WebElement e:elements) 
     { 
     if(e.isDisplayed()) 
      String text = e.getAttribute("innerText"); 
     } 
之前是在瀏覽器中可見