我将多个元素(具体是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的元素
答案 0 :(得分:1)
由于您不使用迭代器中的元素-该迭代器的光标不会移动,并且hasNext
始终为true。您应该在循环中调用ListIterator::next
:
ListIterator<WebElement> ele = Categories.listIterator();
while(ele.hasNext()) {
WebElement element = ele.next();
// do something with your element
}
来自ListIterator::next
文档:
返回列表中的下一个元素,并提高光标位置。