나는 Facebook의 PHP WebDriver 및 Selenium을 사용하여 일련의 테스트를 실행합니다. Chrome에서 phpunit으로 실행합니다. 테스트는 Windows 시스템에서 실행되며로드 된 페이지는 Ubuntu VM에서 가져온 것입니다.PHP, 셀렌 및 chromedriver가있는 WebdriverCurlException
대부분의 경우 모든 것이 훌륭합니다. 그러나 때때로, 테스트는 시작시 몇 가지 실패한 권리로 극적으로 오류를 범할 것입니다. Chrome 창이 열리 며 원하는 URL을 입력하고 아무 것도 입력하지 않습니다. 그것은 약 30 초 동안 '로드'하고 다음을 인쇄 :
Facebook\WebDriver\Exception\WebDriverCurlException: Curl error thrown for http GET to /session/d86523c4-6b25-4e61-bc2c-bc0cd3e615f4/title
Operation timed out after 30000 milliseconds with 0 bytes received
E:\dev\foldername\vendor\facebook\webdriver\lib\Exception\WebDriverException.php:92
E:\dev\foldername\vendor\facebook\webdriver\lib\Remote\HttpCommandExecutor.php:320
E:\dev\foldername\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php:547
E:\dev\foldername\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php:227
E:\dev\foldername\vendor\facebook\webdriver\lib\WebDriverExpectedCondition.php:60
E:\dev\foldername\vendor\facebook\webdriver\lib\WebDriverWait.php:60
E:\dev\foldername\tests\FunctionalTestBase.php:44
E:\dev\foldername\tests\ReorderQuestionsTest.php:18
그것은 또한 때때로이를 게시 할 예정입니다 : phpunit을 5.5.4 사용
Facebook\WebDriver\Exception\WebDriverCurlException: Curl error thrown for http POST to /session/be8e5886-7d05-4eb5-a798-143fb7ed3b30/url with params: {"url":"http:\/\/app.name.test"}
Operation timed out after 30000 milliseconds with 0 bytes received
E:\dev\foldername\vendor\facebook\webdriver\lib\Exception\WebDriverException.php:92
E:\dev\foldername\vendor\facebook\webdriver\lib\Remote\HttpCommandExecutor.php:320
E:\dev\foldername\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php:547
E:\dev\foldername\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php:195
E:\dev\foldername\tests\FunctionalTestBase.php:40
E:\dev\foldername\tests\TypeChangeWithRoute2Test.php:18
, PHP는 7.0.10, 셀레늄 서버 2.53. 1, Chromedriver 2.23, Chrome 53.0.2785.89.
내가 시도한 것 : ChromeDriver를 2.9로 업데이트 (다른 문제가 발생 함,이 문제를 해결하지 않음). $ webDriver-> get ($ this-> url) 호출 후 시간 초과 추가. 추가이 :
try{
$this->webDriver->wait(5)->until(Condition::titleIs('Login'));
}catch(TimeOutException $e){
$this->webDriver->get($this->url);
}
내가 설정하는 언급을 발견했습니다 -jar 우측 클릭 -> 열기 뿐인데> 대신 명령 자바의 자바와 셀레늄 서버를 시작 DBUS_SESSION_BUS_ADDRESS =는/dev/null로하지만, 나는 그것을 추가 할 곳을 찾을 수없는 것처럼 보입니다.
내 설정 기능 :
$capabilities = Capabilities::chrome();
$this->webDriver = Driver::create('http://localhost:4444/wd/hub', $capabilities);
$this->webDriver->manage()->window()->maximize();
$this->webDriver->get($this->url);
try{
$this->webDriver->wait(2)->until(Condition::titleIs('Login'));
}catch(TimeOutException $e){
$this->webDriver->get($this->url);
}
내 분해 기능 :
$this->webDriver->quit();
나는 무엇을해야하는지에 잃었어요. 무작위로 실패한 테스트는 사용할 수 없습니다. 글쎄, 난 파이어 폭스와 같은 문제를 가지고 있지만 한 PhantomJS :
또한
try {
$this->webDriver->get($this->url);
} catch (WebDriverCurlException $e) {
$this->tearDown();
$this->setUp();
}
UPDATE를 시도했습니다. 추측 컨데 Selenium Server 2.53에 문제가있는 것 같습니다 ...
네트워크가 과부하 상태 인 것처럼 트래비스가 실패한 것으로 나타났습니다. 빌드를 계속 다시 시작하면 결국 트래픽이 줄어들고 리소스가 비어나면 결국 문제가 해결됩니다. –