当前位置: 首页 > 面试题库 >

How to avoid “StaleElementReferenceException” in Selenium?

诸葛煜
2023-03-14
问题内容

我正在使用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的异常。所以请帮助我,如何一个接一个地执行多个动作... 问候纳尔西