gpt4 book ai didi

Java Selenium - 使用 xpath 从具有相同类名的多个 div 中查找字符串文本

转载 作者:太空宇宙 更新时间:2023-11-04 11:51:04 25 4
gpt4 key购买 nike

我希望你能帮助我。

我一直在浏览各种论坛和问题,了解如何使用 xpath 查询循环访问具有相同类名的多个 div。我对 WebDriver 和 Java 还很陌生,所以我可能没有正确地提出这个问题。

我有一个表,我正在尝试识别其中的值并确保它们是正确的。每个字段都有相同的类标识符,我能够成功拉回第一个结果并使用以下内容通过报告日志记录进行确认

String className1 = driver.findElement(By.xpath("(//div[@class='table_class'])")).getText();
Reporter.log("=====Class Identified as "+className1+"=====", true);

但是,当我尝试循环浏览时(我看到多个答案都说要向 xpath 查询添加 [2] 后缀),我收到编译错误:

String className2 = driver.findElement(By.xpath("(//div[@class='table_class'])")[2]).getText();
Reporter.log("=====Class Identified as "+className2+"=====", true);

上面给出了一个错误,说“表达式的类型必须是数组类型,但它解析为 By”

我不是 100% 确定如何构建它以设置数组然后循环。

虽然现在这只是验证字段标签,但最终我需要使用这种方法来验证提取的后续数据,然后我会遇到同样的问题

最佳答案

您收到的错误是 -

String className2 = driver.findElement(By.xpath("(//div[@class='table_class'])")[2]).getText();

因为您以错误的方式使用索引,请将其修改为 -

String className2 = driver.findElement(By.xpath("(//div[@class='table_class'])[2]")).getText();

String className2 = driver.findElement(By.xpath("(//div[@class='table_class'][2])")).getText();

更好的方法是 -

int index=1;
List <WebElement> allElement = driver.findElements(By.xpath("(//div[@class='table_class'])"));
for(WebElement element: allElement)
{
String className = element.getText();
Reporter.log("=====Class Identified as "+className+""+index+""+"=====", true);
index++
}

关于Java Selenium - 使用 xpath 从具有相同类名的多个 div 中查找字符串文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41826021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com