Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SeleniumWebDriver-如何获取表元素并遍历行_Java_Html_Selenium Webdriver - Fatal编程技术网

Java SeleniumWebDriver-如何获取表元素并遍历行

Java SeleniumWebDriver-如何获取表元素并遍历行,java,html,selenium-webdriver,Java,Html,Selenium Webdriver,我希望每行迭代表,在我的测试场景中,我将查找每行的特定数据。我已经通过使用绝对Xpath实现了这一点。除了使用绝对Xpath来迭代这些行之外,还有其他更好的方法吗 这是我之前代码的逻辑: private static introw WebElement-sWorkUnitRows=null for(iRow=1;iRow您可以使用findelelement(…)而不是findelelement(…) 以下是一个例子: List<WebElement> elements = drive

我希望每行迭代表,在我的测试场景中,我将查找每行的特定数据。我已经通过使用绝对Xpath实现了这一点。除了使用绝对Xpath来迭代这些行之外,还有其他更好的方法吗

这是我之前代码的逻辑:

private static introw

WebElement-sWorkUnitRows=null


for(iRow=1;iRow您可以使用
findelelement(…)
而不是
findelelement(…)

以下是一个例子:

List<WebElement> elements = driver.findElements(By.Xpath(".//*/tr/td[5]/div"));
for(WebElement element:elements){
     ...
}
List elements=driver.findElements(By.Xpath(“./*/tr/td[5]/div”);
for(WebElement:elements){
...
}

这将返回位于每行第5列的所有
div的列表。

您可以使用
findElement(…)
而不是
findElement(…)

以下是一个例子:

List<WebElement> elements = driver.findElements(By.Xpath(".//*/tr/td[5]/div"));
for(WebElement element:elements){
     ...
}
List elements=driver.findElements(By.Xpath(“./*/tr/td[5]/div”);
for(WebElement:elements){
...
}
这将返回位于每行第5列的所有
div的列表。

第一个: 如果你能把ID放在你感兴趣的元素上,那是最好、最快的选择。最重要的是,只要保持ID,就可以在不破坏测试的情况下更改接口

回答您的问题: 我建议driver.findElements(),但通常建议在有其他选项时不要使用XPath

在本例中,我将使用.CssSelector的
By
查找元素。类似于:

"tbody.listTbody tr"
然后从返回的web元素列表中的每个项目中提取数据。我猜想,如果您正在查找可能不需要一直到div的数据。只需获取该行的文本,然后如果您找到与数据匹配的内容,请使用div。首先避免检查div。

First: 如果你能把ID放在你感兴趣的元素上,那是最好、最快的选择。最重要的是,只要保持ID,就可以在不破坏测试的情况下更改接口

回答您的问题: 我建议driver.findElements(),但通常建议在有其他选项时不要使用XPath

在本例中,我将使用.CssSelector的
By
查找元素。类似于:

"tbody.listTbody tr"

然后从返回的web元素列表中的每个项目中提取数据。我猜,如果您正在查找可能不需要一直到div的数据。只需获取该行的文本,然后如果您找到与数据匹配的内容,请使用div。您首先可以避免检查div。

您好,谢谢回答,是否有另一种方法可以使用表的绝对xpath获取元素w/o?@user3713453您可以使用相对xpath,如
//*/table/tbody/tr/td[5]/div
或另一个
By
中的一个可用。您好,感谢您的回复,有没有其他方法可以通过使用表的绝对xpath来获取元素?@user3713453您可以使用相对xpath,如
//*/table/tbody/tr/td[5]/div
或另一个
By
可用。