我的测试脚本正在导航到报告页面,单击“下载报告”按钮。单击它后,页面底部将显示一个IE下载对话框。
问题在于,单击IE中的按钮后,驱动程序似乎失去了连接。寻找一些可能的解决方法。 IEDriver和Webdriver nuget软件包都是最新版本。这是C#。 此问题仅在IE中。
这是我得到的错误:
OpenQA.Selenium.WebDriverException:到远程的HTTP请求 用于URL的WebDriver服务器 http://localhost:52706/session/ea7da8ec-add0-4562-81c2-d2ebc706a073/click 60秒后超时。 ---> System.Net.WebException:请求 已中止:该操作已超时。
答案 0 :(得分:3)
这里的问题是,当IE正在下载文件时,浏览器的readyState
从不会从interactive
移到complete
,这意味着浏览器“等待页面加载”检测永远不会完成。停止此操作的方法是在创建时更改驱动程序的页面加载策略。不利的一面是它有可能影响其他操作,因为驱动程序将从页面加载中返回的时间比您的代码预期的要早,因此需要在代码的其他部分中明智地使用WebDriverWait
。设置页面加载策略的代码如下:
// DISCLAIMER: Code below written from memory,
// without benefit of Visual Studio or
// another IDE. It might require modification
// to work properly, or even to compile.
InternetExplorerOptions options = new InternetExplorerOptions;
options.PageLoadStrategy = PageLoadStrategy.Eager;
IWebDriver driver = new InternetExplorerDriver(options);