当前位置: 首页 > 知识库问答 >
问题:

Selenium stale元素引用:元素未附加到页面文档

徐丰茂
2023-03-14

我得到了这个错误,当我试图点击一个下拉ID:

stale element reference: element is not attached to the page document

我想用这个代码:

boolean staleElement = true;
        while(staleElement)
        {
            try{
                WebDriverWait wait = new WebDriverWait(driver, 20);
                WebElement element = driver.findElement(By.id(dropDownId));
                wait.until(ExpectedConditions.elementToBeClickable(element));
                element.click();
                staleElement = false;
            }
            catch(StaleElementReferenceException e)
            {
                staleElement = true;
                Thread.sleep(200);
            }
        }

有没有什么方法可以防止无限循环,或者更好的方法在我得到这个异常后点击id?

共有1个答案

谢铭
2023-03-14

一般来说,你的代码相当好。为了避免无限循环,您可以在那里添加某种计数器,以便在10次尝试单击元素失败的情况下进行测试。
如果您在中获得元素在异常点处不可单击尝试块,您可以尝试使用visibilityOfElement定位预期的护发素,而不是elementToBeClickable
如果这仍然不够,您可以在wait.until之间添加一个短延迟(预期onditions.visibilityOfElement定位(元素));element.click();命令让元素在单击元素之前最终呈现在页面上。

 类似资料: