#java #selenium #xpath
Вопрос:
List<WebElement> listItems = driver.findElements(By.xpath("//div[@class='inventory_item']"));
System.out.println("Number of Items : " listItems.size());
for(WebElement e : listItems )
{
String sTextValue = e.findElement(By.xpath("//div[@class='inventory_item_name']")).getText();
System.out.println(sTextValue);
}
Во время итерации он печатает только имя 1-го элемента для каждой итерации.
Ответ №1:
Чтобы найти элемент внутри другого элемента с помощью XPath, вы должны использовать точку .
в начале внутреннего элемента XPath, как показано ниже.
Это должно сработать:
List<WebElement> listItems = driver.findElements(By.xpath("//div[@class='inventory_item']"));
System.out.println("Number of Items : " listItems.size());
for(WebElement e : listItems )
{
String sTextValue = e.findElement(By.xpath(".//div[@class='inventory_item_name']")).getText();
System.out.println(sTextValue);
}
Ответ №2:
Вы можете попробовать вот так :
int i = 0;
for(WebElement e : listItems)
{
String sTextValue = e.findElement(By.xpath("(//div[@class='inventory_item']//div[@class='inventory_item_name'])['" i "']")).getText();
i ;
System.out.println(sTextValue);
}