簡體   English   中英

如何迭代多個列表 <WebElement> 在硒/ Java中

[英]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.

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