节点selenium-webdriver“错误:超时等待WebDriver服务器在”

在按照WebDriverJs文档的“入门”部分中的说明以及从其站点运行此片段之后:

var driver = new webdriver.Builder(). withCapabilities(webdriver.Capabilities.chrome()). build(); driver.get('http://www.google.com'); driver.findElement(webdriver.By.name('q')).sendKeys('webdriver'); driver.findElement(webdriver.By.name('btnG')).click(); driver.wait(function() { return driver.getTitle().then(function(title) { return title === 'webdriver - Google Search'; }); }, 1000); driver.quit(); 

我得到这个错误:

 Error: Timed out waiting for the WebDriver server at http://XXX.XXX.X.XXX:60065/ at <anonymous> at <anonymous> at <anonymous> at <anonymous> at <anonymous> at <anonymous> at <anonymous> at <anonymous> at <anonymous> at <anonymous> ==== async task ==== WebDriver.createSession() 

我正在使用这里find的ChromeDriver的mac32版本运行OSX Mavericks。 chromedriver可执行文件位于我的/usr/local/bin目录中,可以在我的path上访问。

我注意到的一件事是,当我从命令行运行chromedriver ,它运行在端口9515 ,而节点代码正在寻找它在60065 。 但是,不应该有任何额外的configuration只需要使用chromedriver运行。

有没有人有任何想法,为什么我得到这个错误?

我今天和今天有这个确切的问题,因为我可以告诉它是当前版本的selenium-webdriver软件包(2.41.0)的一个错误。

Selenium项目存在一个bug,但是我不认为这个修复已经进入了npm。

降级到Chromedriver版本2.9.248307为我工作。

基于@Andrej Kaurin评论:

您可以在您的量angular器configuration中设置directConnnect: true

当这个设置,量angular器直接连接浏览器驱动程序和selenium是不需要的。

更多细节: https : //github.com/angular/protractor/blob/master/docs/server-setup.md#connecting-directly-to-browser-drivers