[英]ListIterator or Iterator does not stop at the end of the List
我将多个元素(具体是17个)存储到List中。 我正在尝试遍历并打印一些内容。 但是,当我检查时,迭代器.hasNext()
并未在列表末尾停止。
List<WebElement> Categories = driver.findElements(By.xpath("//h2[@class='popover-category-name']"));
ListIterator<WebElement> ele = Categories.listIterator();
int i=0;
while(ele.hasNext()) {
//String eleText = Categories.get(i).getText();
System.out.println("Element at position "+i+" ");
i++;
}
输出是这样的。
...
元素在位置1329908
元素在位置1329909
位置1329910的元素
位置1329911的元素
位置1329912的元素
位置1329913的元素
由于您不使用迭代器中的元素-该迭代器的光标不会移动,并且hasNext
始终为true。 您应该在循环中调用ListIterator::next
:
ListIterator<WebElement> ele = Categories.listIterator();
while(ele.hasNext()) {
WebElement element = ele.next();
// do something with your element
}
从ListIterator::next
docs:
返回列表中的下一个元素并前进光标位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.