如果您最初找到该页面后对页面进行了任何更改,则
element该
webdriver参考现在将包含一个
stale参考。由于页面已更改,因此
element将不再位于
webdriver预期的位置。
要解决您的问题,请
find在每次需要使用该元素时尝试-编写一个小的方法,可以随时随地调用是一个好主意。
import org.openqa.selenium.support.ui.WebDriverWaitpublic void clickAnElementBylinkText(String linkText) { wait.until(ExpectedConditions.presenceOfElementLocated(By.linkText(linkText))); driver.findElement(By.linkText(linkText)).click();}然后,在您的代码中,您只需要:
clickAnElementBylinkText("Logout");因此,每次页面都将找到该元素并单击它时,即使页面因“刷新”对该元素的引用而发生更改,也都会成功单击该元素。



