2016-08-08 82 views
4

使用帶有Vagrant的Laravel 5+。讓WebDriver與Firefox合作

我使用有硒運行:

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

使用無頭顯示:

sudo Xvfb :10 -ac 

但是當我運行codeception:

./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 訪問網站,但是,這是外流浪者。

我觀察$url = 'http://localhost:4444/wd/hub',裏面api\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php

由於錯誤輸出:

127.0.0.1 on port 7055.

+0

我最終試圖獲得驗收測試工作,所以我可以測試我的角元素 –

回答

3

切換到Chrome網上應用驅動,是不那麼複雜,更兼容,適合我。

  1. 下載Chrome的webdriver或作曲家需要
  2. 安裝環境

    nohup的須藤的Xvfb:10 -ac &

    出口顯示器=:10

    Java的罐子供應商/ SE/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.chrome.bin =「/ usr/bin/google-chrome」-Dwebdriver.chrome.driver =「vendor/bin/chromedriver」

+4

爲什麼這是被接受的答案? 「使用chrome」絕對不是「讓WebDriver使用Firefox」的有效答案 –

3

其實你應該從你的系統在運行selenium-server-standalone.jar如下下載最新geckodriver from here並設置屬性Dwebdriver.gecko.driver與下載geckodriver路徑:

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已發佈可執行文件geckodriver,它將與最新的Firefox瀏覽器一起運行。欲瞭解更多信息,你應該follow this link

現在你需要marionetteRemoteWebDriver初始化期間內api\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php設置能力true爲:

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

完整的示例代碼:

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

爲什麼我應該使用壁虎驅動程序? –

+0

這是怎麼回事? $ capabilities-> setCapability('marionette',true); –

+0

因爲最新的Firefox瀏覽器Mozilla發佈了一個可執行的geckodriver,沒有這個可執行文件,你不能使用最新的瀏覽器運行.. :) –