因为我们通常将动作类用于Click事件。不知怎的,我对每个动作类的用法都感到异常。它在每个操作方法上抛出StaleElementReference异常,不适用于单个实例。
元素在调试时也无法单击。当我用简单的Click((方法替换它时,它运行得很好。但是,基于其他一些异常依赖,我不能使用click方法。
可能出了什么问题
using OpenQA.Selenium.Interactions;
Actions action = new Actions(driver);
action.MoveToElement(WebElement).Click().Perform();
我是不是错过了什么?
您试图访问的元素不再显示在页面中。该元素可能仍在页面上,但在找到该元素后,您可能已经浏览了整个页面,这意味着这是驱动程序试图访问的元素的新版本,而旧元素已经消失。
再次执行driver.findElement,然后使用移动到的操作。如果您确信元素仍在显示。
您需要再次获取该元素(如果它现在可以点击的话(。
IWebElement WebElement;
...
By byLocator = By.Id("myElementId");
WebElement = driver.FindElement(byLocator);
Actions action = new Actions(driver);
action.MoveToElement(WebElement).Click().Perform();