完整的错误信息是:
Test(s) failed. OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL http://localhost:59662/session timed out after 60 seconds.
----> System.Net.WebException : The operation has timed out
在我的代码行,这是发生简单实例一个新的ChromeDriver实例:
CurrentDriver = new ChromeDriver(section["chromedriverfolder"]);
所以我的问题是……为什么一个新的ChromeDriver调用/session URL,什么可能导致它失败? 我在TeamCity 9.x上运行Selenium.WebDriver.ChromeDriver v2.22和Chrome v52.0.2743.116 m时遇到了同样的错误。我能够通过回滚运行在TeamCity代理上的Chrome版本到v51来解决这个问题。
检查代理执行测试时,有一个弹出错误:"Chrome自动化扩展已崩溃。单击此气球以重新加载扩展。"
这似乎是最新版Chrome和Selenium.WebDriver的一个bug。ChromeDriver,但到目前为止,这是我发现的唯一线索
编辑:链接到ChromeDriver问题
EDIT2:到分辨率的链接
我有答案,其中ChromeDriver调用/session URL,但不是第二部分为什么它超时。请看看它是否可以提供一些导致调试过程中发现故障:当我们调用new ChromeDriver()它在构造函数中创建RemoteWebDriver:
super(new DriverCommandExecutor(service), capabilities);
最终到达:
public RemoteWebDriver(CommandExecutor executor, Capabilities desiredCapabilities,
Capabilities requiredCapabilities) {
在这个方法中,我们执行startClient在这里什么都不做
在startClient之后我们做:
startSession(desiredCapabilities, requiredCapabilities);
这个方法在下面一行发出请求/会话:
Response response = execute(DriverCommand.NEW_SESSION, parameters);
DriverCommand。NEW_SESSION设置为newSession,映射到命令编解码器
中的post/sessiondefineCommand(NEW_SESSION, post("/session"));