Вы должны использовать
List<WebElement> countryUL = driver.findElements(By.xpath("//div[@class='demo-frame']/ol/li"));
Ваш xPath не входит в ol
. Чтобы подсчитать li
элементов, вы должны исправить свой путь, как я показал, чтобы он занимал нужные вам конечные узлы.
Вам также нужно учитывать, что нажатие на элемент может привести к перестройке DOM, поэтому что элементы в вашем списке будут go устаревшими. Если это так, то лучшим решением будет поэтапный подход с использованием подхода, подобного //your_xpath[number_of_element]
.
Тест, который отлично работает:
public void testListIteration() {
driver.get("https://demoqa.com/selectable/");
List<WebElement> countryUL = driver.findElements(By.xpath("//div[@class='demo-frame']/ol/li"));
for(WebElement item: countryUL){
item.click();
boolean isSelected = item.getAttribute("class").contains("ui-selected");
if(!isSelected){
System.out.println("Test FAILED");
return;
}
}
}