java - 如何解决 "stale element reference: element is not attached to the page document when navigating to the previous page"

标签 java selenium selenium-webdriver

我的页面上有图标,该图标可能会在该页面上多次出现。我想单击该图标,截取屏幕截图,然后返回上一页并单击其他图标并执行相同的操作:我得到

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

导航到上一页时”。 下面是我的代码:

List<WebElement> List = driver.findElements(Loc_AttachmentIcon);

for (WebElement e : List) {             
    if(e.getText().contains(".JPG")) {
        e.click();  
        File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        // Now you can do whatever you need to do with it, for example copy somewhere
        FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));
        driver.navigate().back();
    }

    else if(e.getText().contains(".jpg")) {
        System.out.println("Contains Jpg file");
    }
    else if(e.getText().contains(".png")) {
        System.out.println("Contains Jpg file");
    }
    else if(e.getText().contains(".PNG")) {
        System.out.println("Contains Jpg file");
    }
    else if(e.getText().contains(".gif")) {
        System.out.println("Contains Jpg file");
    }
    else if(e.getText().contains(".GIF")) {
        System.out.println("Contains Jpg file");
    }
    else {
        e.click();
    }
}

最佳答案

您需要在每次迭代中重新定位元素。您可以使用索引来跟踪您的进度

int size = driver.findElements(Loc_AttachmentIcon).size();

for (int i = 0 ; i < size ; i++) {
    List<WebElement> list = driver.findElements(Loc_AttachmentIcon);
    WebElement e = list.get(i);

    if(e.getText().contains(".JPG")) {
        //...
    }
} 

关于java - 如何解决 "stale element reference: element is not attached to the page document when navigating to the previous page",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52854861/

相关文章:

java - Maven 指定编译时插件

java - 特殊unicode字符导致MySQL JDBC异常

java - 如何检查元素是否是可点击的按钮而不是文本?

selenium - 断言失败后如何继续测试执行?

java - 使用selenium webdriver运行exe文件

javascript - 无法在 selenium 3.0-beta3 中使用 geckodriver 0.10 使用 Javascript 和 selenium 自己的示例启动 Firefox

java - 我如何将 JsonArray 从 jsp 解析为 Javascript

java - Spring - 如何将文件写入类路径?

java - 如果唯一标识符位于同级元素中,则用于单击链接的 xpath 表达式

selenium - FindBy 属性何时触发 driver.FindElement?