动作类上的staleElementReference错误

时间:2018-11-28 12:19:20

标签: c# selenium selenium-webdriver staleelementreferenceexception

因为我们通常将动作类用于Click事件。不知何故,我在每个动作类用法上都遇到了异常。它将在每个操作方法上引发 StaleElementReference 异常,不适用于单个实例。

元素在调试时也无法单击。 当我用简单的Click()方法替换它时,它工作正常。但是,我不能使用基于其他异常依赖的click方法。

出什么问题了,

using OpenQA.Selenium.Interactions;

Actions action = new Actions(driver);
action.MoveToElement(WebElement).Click().Perform();

我想念什么吗?

2 个答案:

答案 0 :(得分:0)

您尝试访问的元素不再显示在页面中。 该元素可能仍在页面上,但是您可能会在找到该元素之后浏览整个页面,这意味着这是驱动程序尝试访问的元素的新版本,而旧版本已消失。

再次执行driver.findElement,然后使用移动到的动作(如果确定),则仍在显示该元素。

答案 1 :(得分:0)

您需要再次获取该元素(如果现在甚至可以单击)。

IWebElement WebElement;
...

By byLocator = By.Id("myElementId");
WebElement = driver.FindElement(byLocator);
Actions action = new Actions(driver);
action.MoveToElement(WebElement).Click().Perform();