我查看了关于在线论坛和本网站的讨论并添加了等待功能。然而,它仍然显示此错误 下面是该问题的代码:测试抛出StaleElementReferenceException:元素不再附加到DOM或页面已被刷新
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import com.google.common.base.Function;
public class WebDriverNavigate {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.gecko.driver",System.getProperty("user.dir")+"/GeckoDriver/geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.navigate().to("http://www.google.com");
WebElement textbox = driver.findElement(By.id("lst-ib"));
textbox.sendKeys("Search on Google");
WebDriverWait wait = new WebDriverWait(driver,10);
wait.until(visibilityOfElementLocated(By.id("lst-ib")));
driver.findElement(By.name("btnK")).click();;
textbox.clear();
textbox.sendKeys("This is the second search");
WebElement searchbutton2 = driver.findElement(By.id("fZl"));
searchbutton2.click();
driver.navigate().back();
driver.navigate().forward();
driver.navigate().refresh();
}
private static Function<WebDriver,WebElement> visibilityOfElementLocated(final By locator) {
return new Function<WebDriver, WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
};
}
}
下面是HTML代码段:控制台上
<input class="gsfi" id="lst-ib" maxlength="2048" name="q" autocomplete="off" title="Search" value="Search on Google" aria-label="Search" aria-haspopup="false" role="combobox" aria-autocomplete="list" style="border: medium none; padding: 0px; margin: 0px; height: auto; width: 100%; background: transparent url("data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw%3D%3D") repeat scroll 0% 0%; position: absolute; z-index: 6; left: 0px; outline: medium none;" dir="ltr" spellcheck="false" type="text">
错误消息:
线程“main”中的异常org.openqa.selenium.StaleElementReferenceException:stal的元素引用e:元素不再附加到DOM或页面已被刷新
谢谢!看来我的代码被错误地重新安排了。我已经回答了我如何解决这个特定问题。不过,我知道你的建议在未来遇到类似问题时很有用。 –
欢迎您。如果它们有用,你可以投票回答。 –