2016-12-27 76 views
6

我是Docker的新手,但不是E2E量角器。我正在嘗試從Docker容器中構建E2E集成。Docker selenium/node-chrome - 量角器找不到Chrome二進制文件

Angular's protractor cookbook using Docker

他們Step 2 - Starting Selenium Nodes

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

我明白Selnium電網那樣 - 它允許不同類型的瀏覽器通過與電網通信進行測試。

當我有這個碼頭容器運行Protactor不使用它作爲鉻二進制文件,我得到WebDriverError: unknown error: cannot find Chrome binary

如何使量角器使用此容器而不是本地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

理想情況下,您應該看到該錯誤,因爲Hub應該拿起chrom docker容器。您可以嘗試手動訪問網格控制檯'http:// localhost:4444/grid/console'並查看該節點是否已註冊 – AdityaReddy

+0

對於集線器來說,一切看起來都不錯。在控制檯頁面上,我還看到頁面上的「webdriver V」的Chrome圖標。這裏是文本輸出:http://dpaste.com/2JWB011 – dman

回答

3

我發現這個問題......我刪除的量角器配置directConnect: true這允許它在沒有本地chrome二進制文件的情況下運行。解決辦法是使此false或刪除它。

從文檔:

的DirectConnect:真正的 - 你的測試腳本直接通信的Chrome驅動程序或驅動程序的Firefox,繞過任何Selenium服務器。如果這是真的,seleniumAddress和seleniumServerJar的設置將被忽略。如果您嘗試使用Chrome或Firefox以外的瀏覽器,則會發生錯誤

+2

我很高興你找到了「問題」。下一個版本的Protractor應該警告您,如果您的驅動程序提供者與以下的請求發生衝突:https://github.com/angular/protractor/pull/3873。 – cnishina

相關問題