一尘不染

How to avoid “StaleElementReferenceException” in Selenium?

java

我正在使用Java实现许多Selenium测试。有时,我的测试由于导致失败StaleElementReferenceException。你能否提出一些使测试更稳定的方法?


阅读 363

收藏
2020-03-08

共1个答案

一尘不染

如果页面上发生的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;
}
2020-03-08