2016-10-11 112 views
0

我使用量角器爲angularjs應用程序編寫了e2e測試。一切正常。但是我想在Docker容器中運行這個測試。在碼頭集裝箱中,我開始Xvfb :0 -ac -screen 0 1024x768x24 &並設置DISPLAY=:0環境。鉻也在碼頭形象中。 但是出了點問題。WebDriver無法在Docker中啓動鉻

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不會啓動。我試圖用--stackTrace--troubleshoot開始protractor,但沒有獲得更多信息。

回答

0

錯誤WebDriver : null是因爲量角器無法在泊塢窗中找到chrome瀏覽器。您需要創建一個已經安裝在docker容器中的鉻瀏覽器的符號鏈接。看看run selenium on chromium,讓你的腳本在鉻瀏覽器上運行。

+0

這沒有幫助。要麼設置符號鏈接,要麼將二進制路徑設置爲chrome選項。 –

+0

你正在使用哪個操作系統? –

+0

在Docker中使用'Debian GNU/Linux 8.5(jessie)'。 –