【问题标题】:Selenium server error: Unable to create new service chromedriverserviceSelenium 服务器错误:无法创建新服务 chromedriverservice
【发布时间】:2018-07-27 20:18:39
【问题描述】:

我正在尝试在我的 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

然后我打开一个新的命令行提示符并运行我的 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);
    });

这是我得到的错误

{ 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' } }

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

【问题讨论】:

标签: javascript node.js selenium webdriver-io


【解决方案1】:

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/

【讨论】:

  • 所以我更新了 selenium 服务器,但仍然收到相同的错误。我查了一下,我的 chrome 驱动版本确实是 2.35.0
  • 只是好奇您是否尝试过在测试中使用其他浏览器驱动程序(如 Firefox)?您是否有任何成功的测试运行,或者您只尝试过 ChromeDriver?另外 - 您当前安装在机器上的 Chrome 版本是什么?
【解决方案2】:

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

   { 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' }

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

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

解决方案

一个快速的解决方案是:

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

【讨论】:

    【解决方案3】:

    通过 webdriver-manager 更新你的 ChromeDriver 版本,如下:

    webdriver-manager clean
    webdriver-manager update
    webdriver-manager start
    

    这将删除旧版本,使用您构建的配置中所述的最新版本进行更新,然后重新启动服务器。希望这会有所帮助。

    【讨论】:

      【解决方案4】:

      当您启动网格节点时,请确保 -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 
      

      【讨论】:

      • '-Dwebdriver.chrome.driver' 不是内部或外部命令、可运行程序或批处理文件。
      【解决方案5】:

      (2020 年更新)

      如果您运行的是 Selenium Server 4 Alpha,则无需通过命令行设置 chromedriver.exe 路径,只需确保 chromedriver exe 文件与 jar 文件位于同一文件夹中

      我花了好长时间才发现 Selenium Server 确实默认包含 web 驱动程序(Firefox、Chrome 等),它们需要单独下载。

      【讨论】:

      • 我在测试文件夹中有 chromedriver。位置不对?
      • 在您的情况下,什么是“测试文件夹”?我不明白你的问题。
      猜你喜欢
      • 2018-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      相关资源
      最近更新 更多