等待时抛出StaleElementReferenceException

本文关键字:StaleElementReferenceException 等待 | 更新日期: 2023-09-27 18:14:57

我在我的测试中有wait:

WebDriverWait wait = new WebDriverWait(dr, TimeSpan.FromSeconds(30));
...
wait.Until((d) =>
{
   if (d.FindElement(By.XPath("//*[@src='/loader.gif']")).Displayed)
   {
       System.Threading.Thread.Sleep(200);
       return false;
   }
   else
   {
       return true;
   }
});

有时会得到StaleElementReferenceException。它在95%的时间内有效,并且在测试的不同地方失败。

错误:

消息:OpenQA.Selenium.StaleElementReferenceException:元素不是在缓存中找到-也许页面在被查看后发生了变化

等待时抛出StaleElementReferenceException

我建议您尝试使用ExpectedConditions,看看是否有帮助。

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
IWebElement loaderGif = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//*[@src='/loader.gif']")));
相关文章:
  • 没有找到相关文章