Подсчет количества элементов, соответствующих данному выражению xpath
Как подсчитать количество элементов, соответствующих для данного выражения xpath
xpath: driver.findElement(By.xpath("//div[contains(@id,'richedittext_instance')]"))
все что мне нужно это граф.
3 ответов
попробуйте этот код:
//Assume driver is intialized properly.
int iCount = 0;
iCount = driver.findElements(By.xpath("Xpath Value")).size());
на iCount
имеет количество элементов, имеющих одинаковое xpath
значение.
другой вариант Если вы основываете свои требования строго при необходимости использования Selenium вы можете сделать что-то подобное с помощью WebElements и получить размер возвращаемого списка:
List<WebElement> myListToCheck=currentDriver.findElements(By.xpath("somePath"));
if(myListToCheck.size()>0){
//do this
}else{
//do something else
}
или просто вернуть размер списка; если вы действительно хотите получить от него...
int mySize=myListToCheck.size()
Я считаю, что как только у вас есть установленный список веб-элементов, вы также можете использовать итераторы для просмотра этого списка. Полезно, Я не знаю... просто предоставляю другой способ добраться до того же конца игры.
не работает в Selenium, что позволяет возвращать узлы только из XPath, а не примитивы, такие как число, возвращаемое count(...)
. Хранится для справки и действует для большинства других инструментов, предлагающих более полный API XPath.
вы должны возвращать только минимально возможный объем данных из запроса. count(//div[contains(@id,'richedittext_instance')])
подсчитывает количество результатов внутри XPath и, таким образом, быстрее, поскольку все элементы не должны передаваться из движка XPath в Селен.
Я не могу помочь вам с тем, как получить это как n int
из селена, но это должно быть легко.