我正在使用Java实现许多Selenium测试。有时,我的测试由于导致失败StaleElementReferenceException
。你能否提出一些使测试更稳定的方法?
如果页面上发生的DOM操作暂时导致该元素不可访问,则会发生这种情况。为了允许这些情况,您可以尝试在最终引发异常之前循环访问几次元素。
试试darrelgrainger.blogspot.com的出色解决方案:
public boolean retryingFindClick(By by) {
boolean result = false;
int attempts = 0;
while(attempts < 2) {
try {
driver.findElement(by).click();
result = true;
break;
} catch(StaleElementException e) {
}
attempts++;
}
return result;
}
问题内容: 运行测试时出现此错误:org.openqa.selenium.StaleElementReferenceException:元素不再附加到DOM 关于如何解决上述异常的任何想法?这发生在我的网格中,该网格具有动态的ref Xpath表达式 问题答案: 我遇到了同样的问题,找不到任何解决方案。提出了一个解决方案并将其发布在这里,希望这对遇到相同问题的人有所帮助。我创建了一个类来处理过时的
我正在为一个鼠标悬停工作,我想通过使用for loop单击每个链接来测试所有链接的工作状态。在我的程序中,迭代进行了一次,而下一次迭代却不工作了,并且显示“StaleElementReferenceException”..........如果需要,请修改代码....
请你提出一些解决这个问题的方法好吗?谢谢
问题内容: 我用Java进行了selenium测试,并且正在做一些断言: 这是Selenium从IDE导出到Java Webdriver时生成的标准方法。 (是的,我想断言该元素不存在) 在上述代码行中进行测试时,我总是会收到错误消息:错误的元素引用:元素未附加到DOM 但是,当我在该步骤之前放置一个thread.sleep时,它可以工作。我没有得到的事实是,等待1毫秒就足够了。在断言之前等待通常
我使用Java实现了很多Selenium测试—有时,我的测试会因为StaleElementReferenceException而失败。 你能建议一些使测试更稳定的方法吗?
我的代码是这样写的。是连续动作。第一个动作是第一次在循环内运行良好。当第二个循环开始时,它抛出了StaleElementRe的异常。所以请帮助我,如何一个接一个地执行多个动作... 问候纳尔西