2016-08-08 16 views
4

バラントでLaravel 5+を使用する。私はcodeception実行したときにWebDriverをFirefoxと連携させる

sudo Xvfb :10 -ac 

しかし:

java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.firefox.bin="/usr/bin/firefox" 

をヘッドレスディスプレイを使用して:私はセレン使用して実行している

./vendor/bin/codecept run selenium --steps 

を私は次のエラーを取得する:

[Facebook\WebDriver\Exception\UnknownServerException] Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output: Error: GDK_BACKEND does not match available displays

私は使用する必要があるサーバーとポートと混同しています。 現在、私はhttp://localhost:8000 までアクセスしていますが、それは流涙の外です。

私は、エラー出力としてapi\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php

内、$url = 'http://localhost:4444/wd/hub'を守ってください。

127.0.0.1 on port 7055.

+0

私は究極的に受け入れテストをしようとしているので、角度要素をテストすることができます –

答えて

3

は、ウェブドライバをクロムに切り替えそれほど複雑でしたより互換性があり、私のためにうまく動作します。

  1. ダウンロードクロムwebdriverをや作曲が必要
  2. セットアップ環境

    nohupをsudoのXvfbの:10 -ac &

    輸出DISPLAY =:10

    のjava -jarベンダー/ SE/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.chrome.bin = "/ usr/bin/google-chrome" -Dwebdriver.chrome.driver = "vendor/bin/chromedriver"

+4

これはなぜ受け入れられた答えですか? "Use chrome"は、 "WebDriverがFirefoxを使用していることを取得する"の有効な答えではありません。 –

3

実際にあなたが最新geckodriver from hereをダウンロードして、あなたは以下のようにselenium-server-standalone.jarを実行したときに、あなたのシステムからダウンロードしたgeckodriverパスでプロパティDwebdriver.gecko.driverを設定する必要があります:

java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.firefox.bin="/usr/bin/firefox" -Dwebdriver.gecko.driver = "path/to/downloaded geckodriver 

注::他のブラウザベンダーのSeleniumが利用できる他のドライバと同様に、Mozillaは最新のFirefoxブラウザと一緒に実行される実行可能ファイルgeckodriverをリリースしました。詳細については、follow this linkをご覧ください。

今、あなたはapi\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php内部RemoteWebDriverの初期化中truemarionetteで機能を設定する必要がありますよう:フルコード例

$capabilities->setCapability('marionette', true); 

$host = 'http://localhost:4444/wd/hub'; 
$capabilities = DesiredCapabilities::firefox(); 
$capabilities->setCapability('marionette', true); 
$driver = RemoteWebDriver::create($host, $capabilities, 5000); 
+0

なぜgeckoドライバを使うべきですか? –

+0

これはどの行にする必要がありますか? $ capability-> setCapability( 'marionette'、true); –

+0

最新のFirefoxブラウザMozillaは実行可能なgeckodriverをリリースしているため、この実行ファイルを使用しないと、最新のブラウザでは実行できません。:) –

関連する問題