我有一个包装器,用于处理在浏览器中单击的元素(它包含WebDriverWait
)。最后一步是element.Click()。此代码在测试期间成功用于多个元素,但是,当单击标记转换到另一个页面时,IE驱动程序会抛出此异常:
类型' OpenQA.Selenium.WebDriverException'的例外情况发生在 WebDriver.dll但未在用户代码中处理
其他信息:对远程WebDriver的HTTP请求 URL的服务器 http://localhost:52368/session/fa3cb036-bbff-45b7-b914-03ed03c86d9c/element/bc89665f-94c3-4829-beee-cff4a106cf87/click 60秒后超时。
奇怪的是,点击成功完成,并且发生了页面转换,但驱动程序似乎在该点击功能中寻找其他内容。内在的例外是:
{"请求已中止:操作已超时。"}
及其堆栈跟踪是:
在 OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(命令 commandToExecute)at OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(命令 commandToExecute)at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串 driverCommandToExecute,Dictionary`2参数)at OpenQA.Selenium.Remote.RemoteWebElement.Click()
我按照步骤设置了IE 11 here,并从here下载了驱动程序的3.8版本(能够在32位版本的3.9上重现)。
什么
答案 0 :(得分:0)
我使用Selenium.Interactions解决了此问题,例如,如果要单击元素:
var seleniumdriver = new InternetExplorerDriver();
Selenium.Intercactions.Action action = new Action(seleniumdriver);
action.MoveToElement(seleniumdriver.FindElement("your element")).Click().Perfom();
有时,如果它不专注于当前对象,则此解决方案将无法工作。 有关主要信息,您可以访问:https://seleniumhq.github.io/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_Interactions_Actions.htm