0

I wrote e2e-tests for an angularjs app with protractor. Everything works fine. But I want to run this tests within a docker container. In the docker container I started Xvfb :0 -ac -screen 0 1024x768x24 & and set the DISPLAY=:0 environment. Chromium is also within the docker-image. But something went wrong.

    protractor client/e2e-tests/protractor.conf.js --verbose

[13:14:40] I/local - Starting selenium standalone server...
[13:14:40] I/launcher - Running 1 instances of WebDriver
[13:14:42] I/local - Selenium standalone server started at http://172.17.0.2:50962/wd/hub

    /code/node_modules/selenium-webdriver/error.js:27
        super(opt_error);
        ^
    WebDriverError: null
        at WebDriverError (/code/node_modules/selenium-webdriver/error.js:27:5)
        at Object.checkLegacyResponse (/code/node_modules/selenium-webdriver/error.js:580:13)
        at /code/node_modules/selenium-webdriver/lib/webdriver.js:64:13
        at Promise.invokeCallback_ (/code/node_modules/selenium-webdriver/lib/promise.js:1329:14)
        at TaskQueue.execute_ (/code/node_modules/selenium-webdriver/lib/promise.js:2790:14)
        at TaskQueue.executeNext_ (/code/node_modules/selenium-webdriver/lib/promise.js:2773:21)
        at asyncRun (/code/node_modules/selenium-webdriver/lib/promise.js:2652:27)
        at /code/node_modules/selenium-webdriver/lib/promise.js:639:7
        at process._tickCallback (internal/process/next_tick.js:103:7)
    From: Task: WebDriver.createSession()
        at acquireSession (/code/node_modules/selenium-webdriver/lib/webdriver.js:62:22)
        at Function.createSession (/code/node_modules/selenium-webdriver/lib/webdriver.js:295:12)
        at Builder.build (/code/node_modules/selenium-webdriver/builder.js:458:24)
        at Local.DriverProvider.getNewDriver (/code/node_modules/protractor/built/driverProviders/driverProvider.js:37:33)
        at Runner.createBrowser (/code/node_modules/protractor/built/runner.js:182:43)
        at /code/node_modules/protractor/built/runner.js:255:30
        at _fulfilled (/code/node_modules/q/q.js:834:54)
        at self.promiseDispatch.done (/code/node_modules/q/q.js:863:30)
        at Promise.promise.promiseDispatch (/code/node_modules/q/q.js:796:13)
        at /code/node_modules/q/q.js:604:44
    [13:15:03] E/launcher - Process exited with error code 1

For me it seems that the chromedriver won't be started. I tried to start protractor with --stackTrace and --troubleshoot but get not more info.

Michael K.
  • 1,738
  • 2
  • 17
  • 35

1 Answers1

0

The error WebDriver : null is because protractor cannot find chrome browser in the docker. You need to create a symlink to chromium browser that is already installed in the docker container. Have a look at run selenium on chromium to make your scripts run on chromium browser.

Community
  • 1
  • 1
Sudharsan Selvaraj
  • 4,792
  • 3
  • 14
  • 22