IEDriver。下载。对远程WebDriver服务器的HTTP请求在60秒后超时

时间:2018-09-18 00:26:12

标签: c# selenium internet-explorer selenium-webdriver

我的测试脚本正在导航到报告页面,单击“下载报告”按钮。单击它后,页面底部将显示一个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:请求   已中止:该操作已超时。

1 个答案:

答案 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);