在我的C#应用程序中使用Selenium Web驱动程序时,出现以下错误:
OpenQA.Selenium.StaleElementReferenceException:陈旧元素引用:元素未附加到页面文档
在此代码中:
IWebElement e = driver.FindElement(By.XPath(link_click), 10); e.Click();
错误行在中,e.Click()但这是在XPath之前指定的相同链接中成功执行但在最后一次尝试中失败的过程!那么这个错误是什么意思以及如何解决呢?
e.Click()
这意味着在页面中更改的元素或元素被删除,此链接中的完整参考http://www.seleniumhq.org/exceptions/stale_element_reference.jsp
解决此问题的一种方法是,您可以重试,可能类似于
bool staleElement = true; while(staleElement){ try{ driver.FindElement(By.XPath(link_click), 10).Click(); staleElement = false; } catch(StaleElementReferenceException e){ staleElement = true; } }