我在迭代列表时删除列表元素时遇到问题.码:
For (WebElement element: list){
if (!element.isEnabled() || !element.isSelected()){
list.remove(element);
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了一个ConcurrentModificationException,我完全理解.我在循环列表中删除列表中的项目.直觉上,这会搞砸循环的索引.
我的问题是,怎么回事我应该删除或者不元素enabled或selected从这个名单?
通过迭代修改列表,使用迭代器之外的方式会导致未定义的行为.您必须显式使用迭代器:
Iterator<WebElement> iter = list.iterator();
while (iter.hasNext()) {
WebElement element = iter.next();
if (!element.isEnabled() || !element.isSelected()) {
iter.remove();
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此问
| 归档时间: |
|
| 查看次数: |
4605 次 |
| 最近记录: |