0

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

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

可能出了什么问题,

using OpenQA.Selenium.Interactions;

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

我错过了什么吗?

4

2 回答 2

0

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

IWebElement WebElement;
...

By byLocator = By.Id("myElementId");
WebElement = driver.FindElement(byLocator);
Actions action = new Actions(driver);
action.MoveToElement(WebElement).Click().Perform();
于 2018-11-29T13:44:30.837 回答
0

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

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

于 2018-11-28T13:34:35.793 回答