2016-12-27 2 views
6

Я новичок в Docker, но не для транспортировщика E2E. Я пытаюсь построить интеграцию E2E из контейнеров докеров.Docker selenium/node-chrome - Транспортер не может найти хром двоичный

Angular's protractor cookbook using Docker После

Они Step 2 - Starting Selenium Nodes с

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

Я понимаю, что делает Selnium Grid - это позволяет браузерам различных типов, которые будут проверены, связываясь с сеткой.

Когда у меня есть этот контейнер для докеров, протактор не использует его как хром-двоичный код, и я получаю WebDriverError: unknown error: cannot find Chrome binary.

Как сделать транспортир использовать этот контейнер node-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

В идеале вы не должны видеть эту ошибку, поскольку концентратор должен забрать контейнер док-станции. Можете ли вы попытаться получить доступ к консоли сетки 'http: // localhost: 4444/grid/console'- вручную и посмотреть, зарегистрирован ли узел. – AdityaReddy

+0

Все выглядит хорошо для концентратора. На странице консоли я также вижу значок хрома для 'webdriver V' на странице. Вот текст: http://dpaste.com/2JWB011 – dman

ответ

3

Я нашел этот вопрос ... Я удалил directConnect: true в транспортир конфигурации и это позволил ему работать без локального хром-двоичного кода. Решение состоит в том, чтобы сделать это false или удалить его.

Из документации:

DirectConnect: правда - Ваш тестовый скрипт напрямую связывается Chrome Driver или Firefox Driver, минуя любой Selenium Server. Если это так, настройки для seleniumAddress и seleniumServerJar будут проигнорированы. Если вы попытаетесь использовать браузер, отличный от Chrome или Firefox, будет сброшена ошибка

+2

Я рад, что вы нашли «проблему». Следующая версия Protractor должна предупредить вас, если у вас есть конфликтующие провайдеры драйверов со следующим запросом на pull: https://github.com/angular/protractor/pull/3873. – cnishina

Смежные вопросы