Java SeleniumWebDriver-如何获取表元素并遍历行
我希望每行迭代表,在我的测试场景中,我将查找每行的特定数据。我已经通过使用绝对Xpath实现了这一点。除了使用绝对Xpath来迭代这些行之外,还有其他更好的方法吗 这是我之前代码的逻辑: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
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
可用。