Docker selenium / node-chrome – El protractor no puede encontrar el binary de Chrome

Soy un novato en Docker, pero no en el protractor E2E. Estoy tratando de build integración E2E fuera de los contenedores Docker.

Siguiendo el libro de cocina del protractor angular de Angular usando Docker

Tienen el paso 2: iniciar los nodos de selenium con

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

Entiendo lo que hace Selnium Grid: permite que los browseres de diferentes types se prueben comunicándose con la networking.

Cuando tengo este contenedor acoplable que ejecuta Protactor no lo uso como un binary de cromo y obtengo WebDriverError: unknown error: cannot find Chrome binary .

¿Cómo hago que protractor use este contenedor node-chrome y no el binary chrome local?

Mi configuration de protractor:

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

Así es como funciono protractor en mi server sin cabeza (no docker) xvfb-run node_modules/protractor/bin/protractor e2e/protractor.conf.js

Encontré el problema … directConnect: true en la configuration del protractor y esto permitió que se ejecutara sin un binary chrome local. La solución es hacer que esto sea false o eliminarlo.

De documentos:

directConnect: true: el script de testing se comunica directamente con el controller de Chrome o el controller de Firefox, evitando cualquier server de Selenium. Si esto es cierto, se ignorarán las configuraciones de seleniumAddress y seleniumServerJar. Si intenta utilizar un browser que no sea Chrome o Firefox, se generará un error