【发布时间】:2019-11-15 23:10:42
【问题描述】:
我需要验证 web 表中的列是否包含所有行的完全相同的值。
我已经完成了一些编码,但我正在寻找有关如何提高性能的信息:
- 我尝试了一个 for 循环,对每一行使用 getText 方法并将值与预期的字符串进行比较:
List<WebElement> rows = driver.findElements(By.xpath(xxxx))
for(WebElement e : rows) {
if(e.getText() != expectedString) {
throwError
}
}
- 我也尝试过 Java 流和 lambda 表达式,但最后收集器部分需要大量时间来处理:
List<String> fetchedValues = rows
.stream()
.filter(e -> e.getText() != expectedString)
.collect(Collectors.toList());
如果至少有一行不包含预期的字符串,我想获取信息。
有什么办法吗?使用 Java 读取给定列中的所有值并立即将其加载到 ArrayList?
【问题讨论】:
-
e.getText() != expectedString.equals() 比较字符串。 -
试试这个:if(!e.getText().contains(expectedString))
-
谢谢大家,我忘记了 equals / contains 方法。但是这里的问题更多:是否可以一次从 webelements 列表中获取文本值,我的意思是不必使用 for 循环?
标签: java selenium html-table tablecolumn