一尘不染

Selenium WebDriver StaleElementReferenceException

selenium

运行测试时出现此错误:org.openqa.selenium.StaleElementReferenceException:元素不再附加到DOM

关于如何解决上述异常的任何想法?这发生在我的网格中,该网格具有动态的ref Xpath表达式


阅读 222

收藏
2020-06-26

共1个答案

一尘不染

我遇到了同样的问题,找不到任何解决方案。提出了一个解决方案并将其发布在这里,希望这对遇到相同问题的人有所帮助。我创建了一个类来处理过时的元素,具体取决于它们的类型,cssselector,id等,并像调用其他任何页面对象一样简单地对其进行调用。

public void StaleElementHandleByID (String elementID)
{
    int count = 0;
    boolean clicked = false;
    while (count < 4 && !clicked)
    {
        try 
        {
            WebElement yourSlipperyElement= driver.findElement(By.id(elementID));
            yourSlipperyElement.click(); 
            clicked = true;
        } 
        catch (StaleElementReferenceException e)
        {
            e.toString();
            System.out.println("Trying to recover from a stale element :" + e.getMessage());
            count = count+1;
        }
    }
}

我建议仅在您知道会导致WebDriver出现问题的元素上使用此功能。

2020-06-26