节点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