首页 > 解决方案 > 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

上面的代码给了我包括重复值在内的计数。请告知如何获得唯一值。提前致谢!

标签: javaselenium

解决方案


假设 td 只有用户名,你可以在 java 8 中尝试这样的事情。

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

推荐阅读