我需要验证 Web 表中的列是否包含所有行的完全相同的值。我已经完成了一些编码,但我正在寻找有关如何提高性能的信息:我尝试了一个 for 循环,对每一行使用 getText 方法并将该值与预期的字符串进行比较: List<WebElement> rows = driver.findElements(By.xpath(xxxx)) for(WebElement e : rows) { if(e.getText() != expectedString) { throwError } }我也尝试过 Java 流和 lambda 表达式,但是最后 Collector 部分需要花费大量时间来处理: List<String> fetchedValues = rows .stream() .filter(e -> e.getText() != expectedString) .collect(Collectors.toList());如果至少其中一行不包含预期的字符串,我想获取信息。有没有什么办法,例如用 Java 读取给定列中的所有值并立即将其加载到 ArrayList?
1 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
您可以尝试此处描述的 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();
}
添加回答
举报
0/150
提交
取消