Docker selenium / node-chrome - 量角器找不到Chrome二进制文件

时间:2016-12-27 21:38:01

标签: selenium docker protractor

我是Docker的新手,但不是E2E量角器。我正在尝试用docker容器构建E2E集成。

关注Angular's protractor cookbook using Docker

他们有Step 2 - Starting Selenium Nodes

docker run -d --link selenium-hub:hub selenium/node-chrome:latest

我了解Selnium Grid的功能 - 它允许通过与网格通信来测试不同类型的浏览器。

当我有这个运行Proteror的docker容器时,它不会将它用作chrome二进制文件而我得到WebDriverError: unknown error: cannot find Chrome binary

如何使量角器使用此node-chrome容器而不是本地chrome二进制文件?

我的量角器配置:

exports.config = {
  framework: 'mocha',
  directConnect: true,
  seleniumAddress: 'http://localhost:4444/wd/hub', // I have this set to the grid docker container from Angular cookbook
  specs: ['./stories/*.js'],
  onPrepare: function() {
    expect = require("chai").use(require("chai-as-promised")).expect;
  },
  mochaOpts: {
    enableTimeouts: false,
    reporter: "spec",
    slow: 7000
  },
  capabilities: {
    browserName: 'chrome'
  }
}

这就是我在无头服务器上运行量角器的方法(非对接器)xvfb-run node_modules/protractor/bin/protractor e2e/protractor.conf.js

1 个答案:

答案 0 :(得分:3)

我发现了问题...我在量角器配置中删除了directConnect: true,这使得它可以在没有本地chrome二进制文件的情况下运行。解决方案是制作此false或删除它。

来自docs:

  

directConnect:true - 您的测试脚本直接与Chrome驱动程序或Firefox驱动程序通信,绕过任何Selenium Server。如果是这样,将忽略seleniumAddress和seleniumServerJar的设置。如果您尝试使用Chrome或Firefox以外的浏览器,则会引发错误