Selenium:将List <webelement>转换为Set <string>

时间:2018-07-03 10:59:43

标签: java selenium

我想从页面中获得独特的元素。我正在计算记录总数。每个记录都属于一个用户,因此有多个记录属于同一用户。我想获得具有唯一用户数的总数。

List<WebElement> efirstpagecount = driver.findElements(By.xpath("//*[@id='usersList']/tbody/tr/td[3]"));

Set<WebElement> uniquecount = new HashSet<WebElement>(efirstpagecount);
System.out.println("Unique count: " + uniquecount.size());

for (WebElement u : uniquecount ) {
  System.out.println(u.getText());
  }

输出:

Unique count: 20
robin
Rocky
prom
jack
stone
Veronica
Veronica
Shawn
Rocky
carl
Rocky
James
Rocky
sam
bon
sam
bone
don
Shawn
don

以上代码为我提供了包含重复值的计数。请告知如何获取唯一值。预先感谢!

1 个答案:

答案 0 :(得分:4)

假设td仅具有用户名,则可以在Java 8中尝试类似的操作。

    Set<String> uniqueUsers = efirstpagecount.stream()
            .map(WebElement::getText).map(String::trim)
            .distinct().collect(Collectors.toSet());
相关问题