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
上面的代码给了我包括重复值在内的计数。请告知如何获得唯一值。提前致谢!
解决方案
假设 td 只有用户名,你可以在 java 8 中尝试这样的事情。
Set<String> uniqueUsers = efirstpagecount.stream()
.map(WebElement::getText).map(String::trim)
.distinct().collect(Collectors.toSet());
推荐阅读
- python - 从 Jupyter Notebook 中删除的文件,我该如何恢复
- c# - 如何在 Unity 中更改播放器的 y 比例?
- javascript - Typescript 从它的泛型类型实例化一个类
- java - 新依赖项中的 Maven 不同的包名称
- javascript - 为什么console.log和return的结果不一样
- javascript - Typeorm 一对多关系和树
- python - 如何在 Keras 中实现这种深度学习模型?
- qt - 在兄弟子目录中使用 QRC 资源
- pandas - 在 Python 中加载带有非结构化文本的 txt
- angular - 保存对“可变”角度的响应