每当我尝试使用Actions移动到不在首次加载驱动程序的页面上的元素时,我得到StaleElementReferenceException(元素未附加到页面文档);但是,该元素显示在DOM和页面源中。我使用Selenium和ChromeDriver版本2.30。我也试过在无头模式下运行Chome。我还试图将二进制文件切换到Chrome测试版和Chrome Canary。
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
wait.Until(d =>
{
try
{
IWebElement e = driver.FindElementById(ID);
builder.MoveToElement(e).Build().Perform();
builder.Click().Build().Perform();
return true;
}
catch { }
return false;
});
它多次尝试找到元素,但永远不能;它挂起在MoveToElement上并返回异常。正如您所看到的,我已经尝试将整个事物包装在try / catch循环中;它仍然永远不会得到元素。任何帮助将不胜感激!
答案 0 :(得分:0)
创建一个新的Actions
对象。它们显然是针对特定页面的,所以旧版本在导航后停止工作。
builder = new Actions(driver);