【发布时间】: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