场景:打开网站,获取对 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/