我查看了關於在線論壇和本網站的討論並添加了等待功能。然而,它仍然顯示此錯誤 下面是該問題的代碼:測試拋出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或頁面已被刷新
謝謝!看來我的代碼被錯誤地重新安排了。我已經回答了我如何解決這個特定問題。不過,我知道你的建議在未來遇到類似問題時很有用。 –
歡迎您。如果它們有用,你可以投票回答。 –