Selenium 服务器错误:无法创建新服务 chromedriverservice

Pla*_*Man 7 javascript selenium node.js webdriver-io

我正在尝试在我的 Windows 10 计算机上运行 webdriverio,并在尝试运行我的测试 js 文件时一直遇到同样的问题。所以我运行它-jar /your/download/directory/selenium-server-standalone-3.5.3.jar 来启动服务器,然后输出

13:06:19.471 INFO - Selenium build info: version: '3.5.3', revision: 'a88d25fe6b'
13:06:19.472 INFO - Launching a standalone Selenium Server
2018-02-16 13:06:19.503:INFO::main: Logging initialized @301ms to org.seleniumhq.jetty9.util.log.StdErrLog
13:06:19.564 INFO - Driver class not found: com.opera.core.systems.OperaDriver
13:06:19.600 INFO - Driver provider class org.openqa.selenium.safari.SafariDriver registration is skipped:
 registration capabilities Capabilities [{browserName=safari, version=, platform=MAC}] does not match the current platform WIN10
13:06:19.640 INFO - Using the passthrough mode handler
2018-02-16 13:06:19.673:INFO:osjs.Server:main: jetty-9.4.5.v20170502
2018-02-16 13:06:19.697:WARN:osjs.SecurityHandler:main: ServletContext@o.s.j.s.ServletContextHandler@3e9b1010{/,null,STARTING} has uncovered http methods for path: /
2018-02-16 13:06:19.703:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@3e9b1010{/,null,AVAILABLE}
2018-02-16 13:06:19.807:INFO:osjs.AbstractConnector:main: Started ServerConnector@4e7dc304{HTTP/1.1,[http/1.1]}{0.0.0.0:4444}
2018-02-16 13:06:19.808:INFO:osjs.Server:main: Started @605ms
13:06:19.808 INFO - Selenium Server is up and running
Run Code Online (Sandbox Code Playgroud)

所以在那之后我打开了一个新的命令行提示符并运行了我的 test.js 文件,看起来像这样

var webdriverio = require('webdriverio');
var options = {
    desiredCapabilities: {
        browserName: 'chrome'
    }
};

webdriverio
    .remote(options)
    .init()
    .url('http://www.google.com')
    .getTitle().then(function(title) {
        console.log('Title was: ' + title);
    })
    .end()
    .catch(function(err) {
        console.log(err);
    });
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误

{ Error: A new session could not be created.
    at end() - C:\Users\KenyaThompson\Desktop\test.js:16:6
  details: undefined,
  message: 'Unable to create new service: ChromeDriverService\nBuild info: version: \'3.5.3\', revision: \'a88d25fe6b\', time: \'2017-08-29T12:54:15.039Z\'\nSystem info: host: \'LAPTOP-9GIHGJ9I\', ip: \'10.0.0.243\', os.name: \'Windows 10\', os.arch: \'amd64\', os.version: \'10.0\', java.version: \'1.8.0_161\'\nDriver info: driver.version: unknown',
  type: 'RuntimeError',
  seleniumStack:
   { type: 'SessionNotCreatedException',
     message: 'A new session could not be created.',
     orgStatusMessage: 'Unable to create new service: ChromeDriverService\nBuild info: version: \'3.5.3\', revision: \'a88d25fe6b\', time: \'2017-08-29T12:54:15.039Z\'\nSystem info: host: \'LAPTOP-9GIHGJ9I\', ip: \'10.0.0.243\', os.name: \'Windows 10\', os.arch: \'amd64\', os.version: \'10.0\', java.version: \'1.8.0_161\'\nDriver info: driver.version: unknown' } }
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释我在这里做错了什么吗?另外是的,我已经通过 npm 和 wdio-chromedriver-service 安装了 chromedriver。

小智 12

通过 webdriver-manager 更新您的 ChromeDriver 版本,如下所示:

webdriver-manager clean
webdriver-manager update
webdriver-manager start
Run Code Online (Sandbox Code Playgroud)

这将删除旧版本,使用构建配置中声明的最新版本进行更新,然后重新启动服务器。希望这可以帮助。


Deb*_*anB 6

您看到的错误确实为我们提供了一些有关问题的提示,如下所示:

   { type: 'SessionNotCreatedException',
     message: 'A new session could not be created.',
     orgStatusMessage: 'Unable to create new service: ChromeDriverService\nBuild info: version: \'3.5.3\', revision: \'a88d25fe6b\', time: \'2017-08-29T12:54:15.039Z\'\nSystem info: host: \'LAPTOP-9GIHGJ9I\', ip: \'10.0.0.243\', os.name: \'Windows 10\', os.arch: \'amd64\', os.version: \'10.0\', java.version: \'1.8.0_161\'\nDriver info: driver.version: unknown' }
Run Code Online (Sandbox Code Playgroud)

从错误消息中可以清楚地看出ChromeDriver没有被检测到,因为您看到的日志消息为Driver info: driver.version:unknown。此错误的主要原因可能是您使用的二进制文件之间不兼容。

  • 你的Selenium Client版本是3.5.3发布2017-08-29T12:54:15.039Z
  • 我们不知道您的ChromeDriver版本。
  • 我们不知道您的Chrome 浏览器版本。

解决方案

一个快速的解决方案是:

  • Selenium Client版本更新到最新级别,即Selenium 3.9.1
  • ChromeDriver版本更新到最新级别,即ChromeDriver 2.35
  • 由于按照发行说明ChromeDriver v2.35更新的Chrome浏览器版本v62-64
  • 在执行测试套件之前和之后运行CCleaner工具以清除操作系统杂务
  • 如果您的Chrome 浏览器的基本版本较旧,请通过Revo Uninstaller卸载Chrome 浏览器并安装最新的 GA 发布版本的Chrome 浏览器
  • 执行您的测试


小智 5

启动网格节点时,请确保-Dwebdriver.chrome.driver参数中chromedriver.exe的路径正确:示例:

java -Dwebdriver.chrome.driver="C:\DEV\eclipse\MainWorkspace\webdrivers\chromedriver.exe" -jar selenium-server-standalone-3.141.59.jar -role node  -hub http://localhost:4444/grid/register -nodeConfig node-config.json > node_output.log 
Run Code Online (Sandbox Code Playgroud)


Den*_*zik 0

Selenium 独立服务器当前版本为 Build 3.9.1。

您似乎正在运行旧版本的独立服务器。也许您正在运行的 ChromeDriver 版本通过更新您的 Selenium 独立服务器可能会运行得更好?

http://www.seleniumhq.org/download/

另外,为了确定...您拥有最新版本的 Windows Chrome 驱动程序版本吗?最新版本为 2.35。 https://chromedriver.storage.googleapis.com/index.html?path=2.35/