2016-12-27 5 views
6

私はDockerの初心者ですが、E2E分度器には初心者です。私はドッカーのコンテナからE2Eの統合を構築しようとしています。Dockerセレン/ノードクロム - 分度器がChromeバイナリを見つけられない

Angular's protractor cookbook using Docker

彼らは私がSelniumグリッドが何をするかを理解しStep 2 - Starting Selenium Nodes

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

を持っている - それは、異なる種類のブラウザでは、グリッドと通信することによって、テストすることができます。

私はこのドッカーコンテナを実行しているときに、Protactorをクロムバイナリとして使用せず、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:真 - あなたのテストスクリプトは、任意のSeleniumサーバーをバイパスクロムドライバまたはFirefoxドライバー、直接通信します。これが当てはまる場合、seleniumAddressとseleniumServerJarの設定は無視されます。 ChromeやFirefox以外のブラウザを使用しようとするとエラーがスローされます

+2

"問題"が見つかりました。次のバージョンのプロトラクターは、競合するドライバープロバイダーが次のプルリクエストを持っている場合に警告する必要があります:https://github.com/angular/protractor/pull/3873。 – cnishina

関連する問題