java - 如何验证整列具有相同的值
问题描述
我需要验证 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 中?
解决方案
您可以尝试这里描述的 forEach 方法
这里有一个例子:
@Test
public void sTest () {
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();
driver.get("https://www.techbeamers.com/handling-html-tables-selenium-webdriver/");
List<WebElement> el = driver.findElements(By.xpath("//*[@id='post-3500']/div[1]/div/p[3]/a"));
el.forEach((e)-> {
if(!e.getText().equals(expectedString)) throwError
});
driver.quit();
}
推荐阅读
- typescript - 如何使类型推断适用于具有泛型的元组(以基于数组的队列为例)?
- html - 在不使用 Masonary 库的情况下在 2 列中对齐不同高度的子 div
- python - 输入参数 `input.value` 必须是 `dash.dependencies.Input` 的列表或元组。短跑
- python - Q 按字母过滤
- list - 如何在 Ansible 中连接两个字典列表
- javascript - 按对象属性过滤数组,然后在过滤的对象之间添加另一个属性的值
- java - 如何使用 Java 在默认的 .xslx 应用程序中打开 Excel 文件?
- node.js - 打字稿错误:TS2451 无法在 NodeJS 中重新声明块范围的变量
- php - php数组代码在本地主机上工作但在服务器上不工作
- scrapy - 飞溅返回嵌入式响应