WebDriver:ChromeDriver尝试在初始化和失败时访问http:// localhost / session

时间:2016-08-08 17:01:52

标签: selenium webdriver selenium-chromedriver

完整的错误消息是:

 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,以及可能导致它失败的原因?

2 个答案:

答案 0 :(得分:2)

我在TeamCity 9.x上运行Selenium.WebDriver.ChromeDriver v2.22和Chrome v52.0.2743.116 m时遇到了同样的错误。我能够通过将运行在TeamCity代理上的Chrome版本回滚到v51来解决问题。

在检查执行测试的代理时,会弹出一个错误消息:“Chrome Automation扩展已崩溃。单击此气球重新加载扩展。”

这似乎是最新版本的Chrome和Selenium.WebDriver.ChromeDriver的一个错误,但是到目前为止这是found

的唯一线索

编辑:指向ChromeDriver issue

的链接

EDIT2:指向resolution

的链接

答案 1 :(得分:0)

我有一个答案,ChromeDriver调用/ session URL,但不是第二部分为什么它会超时。请查看它是否可以为调试过程提供一些线索以找出故障: 当我们调用新的ChromeDriver()时 它在构造函数中创建RemoteWebDriver:

(defun my-helm-swoop() (interactive)
       (setq my-helm-swoop-input-history
             (let ((minibuffer-history my-helm-swoop-input-history)) 
               (helm-swoop) minibuffer-history)))

最终归结为:

super(new DriverCommandExecutor(service), capabilities);

在这个方法中,我们做startClient,在这种特殊情况下基本上什么都不做

在startClient之后我们做:

public RemoteWebDriver(CommandExecutor executor, Capabilities desiredCapabilities,
      Capabilities requiredCapabilities) {

此方法在以下行中发出请求/会话:

startSession(desiredCapabilities, requiredCapabilities);

DriverCommand.NEW_SESSION设置为newSession,在命令编解码器中映射到post / session

Response response = execute(DriverCommand.NEW_SESSION, parameters);