当前位置: 首页 > 知识库问答 >
问题:

这个错误意味着什么:过时的元素引用:元素没有附加到页面文档?

梁池暝
2023-03-14

在使用selenium web驱动程序的C#应用程序中,我得到了以下错误:

OpenQA.Selenium.StaleElementReferenceException:过时元素引用:元素未附加到页面文档

在此代码中:

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

错误行在e.click()中,但这是一个在XPath之前指定的链接中成功执行的过程,但在上次尝试中失败了!那么这个错误意味着什么,如何修复呢?

共有1个答案

陆子石
2023-03-14

这意味着元素在页面中被更改,或者元素被删除,在此链接http://www.seleniumhq.org/exceptions/stale_element_reference.jsp中完全引用

有一种方法可以解决这个问题,你可以把retry放进去,可能是这样的

bool staleElement = true; 
while(staleElement){
  try{
     driver.FindElement(By.XPath(link_click), 10).Click();
     staleElement = false;

  } catch(StaleElementReferenceException e){
    staleElement = true;
  }
}
 类似资料: