2016-08-25 58 views
1

進入WebElement的列表,其中只有一個元素可見。即時通訊使用此方法返回該元素:僅在可見時返回WebElement

public WebElement getVisibleElement(List<WebElement> elements){ 
    for(WebElement element : elements){ 
     if(element.isDisplayed()) 
      return element; 
    } 
} 

是否有任何其他方式來實現這一目標?

編輯

下面是使用XPath IM和它返回的元素。

enter image description here

+0

所有元素的你爲什麼讓列表和重複,以找到可見的元素,而不是隻獲取可見元素? –

+0

我使用xpath來獲取元素。它返回具有相同樣式和屬性的多個元素,但只顯示一個元素。 – DCruz22

+0

然後,你需要使用唯一的定位器,通過在定位器中傳遞索引來找到唯一的可見元素..你可以共享元素HTML以及這就是爲什麼我們可以爲您提供更好的解決方案... :) –

回答

0

您可以通過如下采用獨特xpath定位索引在這裏使用findElement代替findElements: -

//Assuming first element from list is visible 
String indexOfVisbleElement = "1"; 
String xpath = "(.//table//td[@class = 'button' and b = 'Refresh'])[" +indexOfVisbleElement+ "]"; 

//Now find only visible element 
WebElement visibleEl = driver.findElement(By.xpath(xpath)); 
+0

這可能是一個很好的方法,但我想方法是可重用的,我不知道如果索引可以改變。 – DCruz22

+0

好的,如果你不確定你是否索引..你能告訴我你使用什麼版本的Java? –

+0

即時通訊使用Java 7和JDK 1.7.0 – DCruz22

相關問題