WebDriver无法在docker中启动chrome

时间:2016-10-11 08:24:11

标签: selenium docker protractor

我用量角器为angularjs应用程序编写了e2e-tests。一切正常。但我想在docker容器中运行此测试。在docker容器中,我启动了Xvfb :0 -ac -screen 0 1024x768x24 &并设置了DISPLAY=:0环境。 Chromium也在docker-image中。 但出了点问题。

    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

对我而言,似乎chromedriver将无法启动。我尝试使用protractor--stackTrace启动--troubleshoot,但获取的信息不多。

1 个答案:

答案 0 :(得分:0)

错误@Multipart @POST("user") Call<UserModelResponse> uploadMultipleFiles(@Part("Authorization") RequestBody authorization, @Part("description") RequestBody description, @Part("file\"; filename=\"myFilename\" ") RequestBody filePart); 是因为量角器在docker中找不到chrome浏览器。您需要创建一个已安装在docker容器中的chrome浏览器的符号链接。查看run selenium on chromium以使您的脚本在Chrome浏览器上运行。