2016-08-08 3 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" 

을 머리가없는 디스플레이 사용 : 나는 다음과 같은 오류가

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

:

내가 codeception를 실행할 때

sudo Xvfb :10 -ac 

[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 을 통해 사이트에 액세스합니다. 당신은 아래와 같이 selenium-server-standalone.jar을 실행할 때 실제로 당신이 당신의 시스템에서 다운로드 geckodriver 경로 geckodriver from here을 최신 설정 특성 Dwebdriver.gecko.driver을 다운로드해야

127.0.0.1 on port 7055.

+0

나는 각도 요소를 테스트 할 수 있도록 궁극적으로 수용 테스트를 시도하고 있습니다. –

답변

3

덜 복잡 :

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

전체 예제 코드 :

지금 당신은 api\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php 내부 RemoteWebDriver의 초기화 동안 truemarionette과 기능을 설정해야 더 호환되고 나를 위해 잘 작동합니다.

  1. 다운로드 크롬 webdriver 또는 작곡가가 필요
  2. 설치 환경

    nohup을 sudo는 Xvfb가 10 -ac &

    수출 DISPLAY = : 10

    자바 -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"은 "Firefox에서 작동하는 WebDriver 받기"에 대한 유효한 대답이 아닙니다. –

3

:

나는 오류 출력으로 api\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php

내부 $url = 'http://localhost:4444/wd/hub' 관찰 :

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이어야합니다. 크롬 웹 드라이버로 전환

$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

최신 파이어 폭스 브라우저 Mozilla가 실행 파일 geckodriver를 발표했기 때문에이 실행 파일이 없으면 최신 브라우저로 실행할 수 없습니다. :) –