Java Selenium:StaleElementReferenceException

Java Selenium:StaleElementReferenceException,java,selenium-webdriver,Java,Selenium Webdriver,我一直在研究这个错误有一段时间了,尝试了很多东西,但似乎没有任何效果 while(!driver.findElements(By.className("next")).isEmpty()) { //elements = driver.findElements(By.xpath("//a[@class='name']")); elements = findDynamicElements("//a[@class='name']");

我一直在研究这个错误有一段时间了,尝试了很多东西,但似乎没有任何效果

        while(!driver.findElements(By.className("next")).isEmpty()) { 
            //elements = driver.findElements(By.xpath("//a[@class='name']"));
            elements = findDynamicElements("//a[@class='name']");
            for (WebElement e : elements) {
                userName = e.getText(); //<--EXCEPTION HERE
                check_visitor_profile(userName);//<--WE LEAVE THE PAGE HERE
                Thread.sleep(3000); //<--NO TRY/CATCH BLOCK FOR READABILITY
                driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
                elements = findDynamicElements("//a[@class='name']");

            }
            driver.findElement(By.xpath("VisitsNext")).click();
        }       



protected List<WebElement> findDynamicElements(String path) {
        List<WebElement> result;
        String xPath = path;
        new WebDriverWait(driver, 25).until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath(xPath)));
        //new WebDriverWait(driver, 25).until(elementIdentified(By.id(path)));

        try {
            result = driver.findElements(By.xpath(xPath));
            return result;
        }
        catch(WebDriverException e) {
            return null;
        }
    );
    }
while(!driver.findElements(By.className(“next”)).isEmpty()){
//elements=driver.findElements(By.xpath(//a[@class='name']);
elements=findDynamicElements(“//a[@class='name']”);
for(WebElement e:elements){

UpReNe= .EgTeTrime.(;)//P>此问题可能发生,因为您正在循环中更改<代码>元素。即使没有<代码> StesteEngEngultEngestExp><代码>,它也会给您带来麻烦。
elements = findDynamicElements("//a[@class='name']");
int size = elements.size();
for (int i = 0 ; i < size ; ++i) {
    elements = findDynamicElements("//a[@class='name']");
    userName = elements.get(i).getText();
    check_visitor_profile(userName);
}
elements=findDynamicElements(“//a[@class='name']”);
int size=elements.size();
对于(int i=0;i
当元素不再附加到DOM或在调用“check\u visitor\u profile”时发生更改时,显式处理异常

查看下面的链接可能会有所帮助

            catch(StateElementException e){
             System.out.println("StaleElement dealt with since you successfully left page "); 
              }

这就是我想要的答案-谢谢。