【发布时间】:2013-04-19 10:22:28
【问题描述】:
我有一个 webElements 列表,我需要遍历并单击每个元素,但是因为每次单击都会刷新页面,所以我会收到 StaleElementReferenceException。每个元素如下所示:
<img src="images/english/edit.gif" border="0" height="24" width="47">
所以我使用递归方法点击每个 webElement 然后将索引传递给下一个实例并刷新列表:
public int enterDescription(int place) { 列表描述 = driver.findElements(By.cssSelector(img[src='images/english/edit.gif']));
for (int index = 0; index < descriptions.size(); index++)
{
index = place;
if(place==descriptions.size())
{
return place;
}
else
{
descriptions.get(index).click();
enterDescription(place++);
}
}
return place; }
这最初一直有效,直到方法崩溃时的完成条件,达到结束条件后,我需要立即终止所有实例。有什么想法吗?
【问题讨论】:
-
为什么需要递归呢?这是家庭作业吗?
-
不,不是,如果有其他方法请指教。
-
我猜你可以使用一个简单的循环。
-
在它抛出 StaleElementReferenceException 之前我已经尝试过了
-
递归对此无济于事。我认为你必须检查你的元素是否过时。
标签: java selenium recursion webdriver