由于某种原因,即使我使用增强的for循环遍历列表中的所有元素,此代码也始终打印列表中第一个元素的标题。
List<WebElement> elementList = getAllElements(driver);
String title = "";
String[] XPath = {"//*[contains(@id,'itemName')]"};
for (WebElement singleElement : elementList) {
try {
title = singleElement.findElement(By.xpath(XPath[0])).getText();
System.out.println("Title: " + title);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
列表中有169个元素具有不同的标题,但不是打印169个不同的标题,而是将第一个标题打印169次。
我做错了什么?
答案 0 :(得分:0)
别管我们,我找到了答案,它与绝对与相对XPath搜索有关。
要解决此问题,您需要做的就是更改:
String[] XPath = {"//*[contains(@id,'itemName')]"};
为:
String[] XPath = {".//*[contains(@id,'itemName')]"};
额外的点强制它使用相对XPath而不是绝对XPath。
我希望这有助于其他人。