我的测试中有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:元素不是 在缓存中找到 - 也许页面自查看以来已经发生了变化 达
答案 0 :(得分:0)
我建议您尝试使用ExpectedConditions并查看是否有帮助。
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
IWebElement loaderGif = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//*[@src='/loader.gif']")));