【问题标题】:Docker selenium/node-chrome - Protractor can not find Chrome binaryDocker selenium/node-chrome - Protractor 找不到 Chrome 二进制文件
【发布时间】:2016-12-31 10:37:13
【问题描述】:

我是 Docker 新手,但不是 E2E protractor。我正在尝试使用 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 的作用 - 它允许通过与网格通信来测试不同类型的浏览器。

当我让这个 docker 容器运行 Protactor 时,不会将它用作 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'
  }
}

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

【问题讨论】:

  • 理想情况下,您不应该看到该错误,因为 Hub 应该选择 chrom docker 容器。可以尝试手动访问网格控制台http://localhost:4444/grid/console- 看看节点是否注册
  • 集线器的一切看起来都不错。在控制台页面上,我还在页面上看到了 webdriver V 的 chrome 图标。这是文本输出:dpaste.com/2JWB011

标签: selenium docker protractor


【解决方案1】:

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

来自文档:

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

【讨论】:

  • 很高兴您找到了“问题”。如果您的驱动程序提供程序与以下拉取请求存在冲突,则 Protractor 的下一版本应警告您:github.com/angular/protractor/pull/3873.
猜你喜欢
  • 2016-09-19
  • 2012-07-15
  • 1970-01-01
  • 2017-04-09
  • 1970-01-01
  • 2020-09-25
  • 2021-11-17
  • 2021-05-22
  • 2021-06-13
相关资源
最近更新 更多