我是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
答案 0 :(得分:3)
我发现了问题...我在量角器配置中删除了directConnect: true
,这使得它可以在没有本地chrome二进制文件的情况下运行。解决方案是制作此false
或删除它。
来自docs:
directConnect:true - 您的测试脚本直接与Chrome驱动程序或Firefox驱动程序通信,绕过任何Selenium Server。如果是这样,将忽略seleniumAddress和seleniumServerJar的设置。如果您尝试使用Chrome或Firefox以外的浏览器,则会引发错误