在我的C#应用​​程序中使用Selenium Web驱动程序时,出现以下错误:



在此代码中:

IWebElement e = driver.FindElement(By.XPath(link_click), 10);
e.Click();

错误行在e.Click()中,但这是一个在XPath之前指定的相同链接中成功执行但在最后一次尝试中失败的过程!那么这个错误是什么意思以及如何解决呢?

最佳答案

这意味着在页面中更改的元素或元素将被删除,此链接中的完整引用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;
  }
}

09-13 05:55