java - 相同的场景 - Java 的 StaleElementReferenceException,但 Watir 没问题

标签 java ruby selenium watir

场景:打开网站,获取对 Webelement“关于”的引用,单击“关于”,导航回来并再次使用变量引用 - 导致 StaleElementReference 异常。这种情况仅发生在 Selenium Java 中,但是当使用 Watir 时,它工作得很好。两个代码片段都发布在下面。有人知道发生了什么事吗?

# Below Java code produces StaleElementReferenceException
    public class StaleElementException {
    public static void main(String[] args) {
    ChromeDriver driver = new ChromeDriver();
    driver.get("http://seleniumframework.com");
    WebElement about = driver.findElementByLinkText("ABOUT");
    System.out.println(about.getText());
    about.click();
    driver.navigate().back();
    System.out.println(about.getText());
    }
    }

#Below Ruby Watir Code works fine
    require 'watir-webdriver'
    @browser = Watir::Browser.new :chrome
    @browser.goto "http://seleniumframework.com"
    about = @browser.link(text: 'ABOUT')
    puts about.text
    about.click
    @browser.back
    puts about.text

最佳答案

Watir 在刷新后自动执行另一个查找元素调用,而 webdriver 不会执行此操作,因此您需要执行 Saifur 建议的操作。

关于java - 相同的场景 - Java 的 StaleElementReferenceException,但 Watir 没问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27096873/

相关文章:

ruby - 如何让 ruby​​-prof 忽略 Ruby 核心/标准库/gem 方法?

python - 如何在 Selenium 中选择表格单元格中的所有文本

java - 在来自 Jersey、Rest API 的大型 json 字符串中添加下一行

ruby-on-rails - 如何将 1 个月添加到 DateTime 变量?

java - 使 Asynctask 返回 Cursor

ruby-on-rails - rails 3 : fields_for showing blank filed on Edit view

selenium - 您可以在 Selenium 网格节点上使用 Edge 的多个实例吗?

python - 如何在 webdriver 运行时更改默认下载文件夹?

Java JNI方法id缓存

java - Java 的无符号类型