如何验证整列具有相同的值
How to verify the whole column has the same values
我需要验证网络 table 中的列是否包含所有行的完全相同的值。
我已经完成了一些编码,但我正在寻找有关如何提高性能的信息:
- 我尝试了一个 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?
您可以尝试 forEach 描述的方法 here
这里有一个例子:
@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();
}
我需要验证网络 table 中的列是否包含所有行的完全相同的值。
我已经完成了一些编码,但我正在寻找有关如何提高性能的信息:
- 我尝试了一个 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?
您可以尝试 forEach 描述的方法 here
这里有一个例子:
@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();
}