[英]How do I iterate multiple List<WebElement> in selenium /Java
我在頁面中有以下WebElement列表
@FindBy(xpath="a")
private List<WebElement> generalList ;
@FindBy(xpath="b")
private List<WebElement> eventList ;
@FindBy(xpath="c")
private List<WebElement> additionalList ;
我想遍歷上述每個列表項並通過循環應用清除,而不是編寫以下當前有效的方式
for(WebElement type:generalList)
type.clear();
for(WebElement type:eventList)
type.clear();
for(WebElement type:additionalList)
type.clear();
在Java 8中,您可以嘗試使用Stream
,如下所示:-
generalList.stream().forEach(elem -> elem.clear());
eventList.stream().forEach(elem -> elem.clear());
additionalList.stream().forEach(elem -> elem.clear());
或合並所有這些列表,然后嘗試作為:
Stream.of(generalList, eventList, additionalList).flatMap(Collection::stream).forEach(elem -> elem.clear());
用番石榴:
for (WebElement type : Iterables.concat(generalList, eventList, additionalList)) {
type.clear();
}
使用Java 8:
Stream.of(generalList, eventList, additionalList)
.flatMap(List::stream)
.forEach(WebElement::clear);
您可以創建一個輔助函數
void clearAll(List<WebElement>... f) {
Arrays.stream(f).forEach((li)->{li.forEach(WebElement::clear);});
}
並像clearAll(generalList, eventList, additionalList);
一樣調用它clearAll(generalList, eventList, additionalList);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.