SessionNotCreatedError:无法创建新服务:ChromeDriverService

时间:2017-09-26 19:01:27

标签: angularjs selenium-webdriver gulp protractor selenium-chromedriver

我们有AngularJS量角器测试。该过程是按顺序设置和运行这些步骤:

$ npm install
$ webdriver-manager update --ie32 --ignore_ssl
$ gulp

我遇到的问题是此设置适用于我的团队中的其他人,但是我有100%的时间收到此错误:

[11:42:33] I/local - Starting selenium standalone server...
[11:42:36] I/local - Selenium standalone server started at http://10.222.189.129:55574/wd/hub

/path/to/repo/node_modules/selenium-webdriver/lib/error.js:27
    super(opt_error);
    ^
SessionNotCreatedError: Unable to create new service: ChromeDriverService
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:54:15.039Z'
System info: host: 'xxxx', ip: 'xxxx', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.6', java.version: '1.8.0_131'
Driver info: driver.version: unknown
   at WebDriverError (/path/to/repo/node_modules/selenium-webdriver/lib/error.js:27:5)
   at SessionNotCreatedError (/path/to/repo/node_modules/selenium-webdriver/lib/error.js:214:5)
   at Object.checkLegacyResponse (/path/to/repo/node_modules/selenium-webdriver/lib/error.js:505:15)
   at parseHttpResponse (/path/to/repo/node_modules/selenium-webdriver/lib/http.js:509:13)
   at doSend.then.response (/path/to/repo/node_modules/selenium-webdriver/lib/http.js:440:13)
   at process._tickCallback (internal/process/next_tick.js:103:7)
From: Task: WebDriver.createSession()
   at Function.createSession (/path/to/repo/node_modules/selenium-webdriver/lib/webdriver.js:777:24)
   at Function.createSession (/path/to/repo/node_modules/selenium-webdriver/chrome.js:709:29)

这个问题与我的设置有关,但我不知所措,所以扔了一个Hail Mary,希望有人有任何建议。

如果您需要任何其他信息,请与我们联系。提前谢谢你,我浪费了很多时间试图让它发挥作用!

4 个答案:

答案 0 :(得分:15)

这可以通过更新到chromedriver和chrome的最新版本来解决。

如果您使用的是webdriver-manager,请运行

webdriver-manager update --chromedriver

然后从https://www.google.com/chrome/browser/desktop/下载Chrome并将旧版Chrome替换为最新版本。

您还需要在运行webdriver并运行的终端中 Ctrl-C

webdriver-manager start

或者杀死并重新启动Selenium守护程序进程以捕获最新的chromedriver。系统重启可能会有所帮助。

也值得一试:

npm update -g protractor
webdriver-manager update

另请参阅session not created exception for chrome in Protractor了解有关如何在量角器配置中修改Chromedriver版本的更多详细信息

最后,确保你的protractor.conf.js有

   commonCapabilities: {
     'browserName': 'chrome',
   },

或者你应该使用

--browser chrome
你的量角器命令上有

标志

答案 1 :(得分:1)

  • 运行webdriver-manager start
  • 手动打开任何浏览器,然后导航到“ localhost:4444 / wd / hub”,然后单击“创建会话”->“ Chrome”。
  
    

这个解决方案可以为我解决,谢谢@Hanc

  

答案 2 :(得分:0)

如果在配置中设置以下内容,则可以下载最新的chromedriver.exe并直接使用以下代码运行它。只有geckoDriver和chromeDriver可以与directConnect一起使用。

directConnect: true,
chromeDriver: 'path_to_chromedriver',
geckoDriver: 'path_to_geckodriver.exe',

答案 3 :(得分:0)

我遇到了同样的问题。只需安装或更新量角器。如果仍然还安装了量角器,请执行以下步骤,在cmd提示符或PowerShell中运行以下命令

npm install protractor -g 

npm install webdriver-manager -g

如果在后台运行时出错,请检查正在运行的处理器并关闭所有正在运行的处理器,然后尝试。

完成上述步骤后,运行以下

webdriver-manager update
webdriver-manager start