2015-01-06 5 views
0

Beat/Mink에서 셀레늄의 자바 스크립트 기능을 사용하여 사용자 지정 시나리오를 만들려고하는데 특별한 장애가 발생했습니다. 가능한 한 간단하게 문제를 해결하기 위해 모든 것을 벗겨 냈습니다.하지만 Selenium에서 visit()를 호출 할 때 일부 웹 사이트는 정상적으로 실행되지만 다른 웹 사이트 (내 자신 포함)는 오류를 반환합니다. "원격 통신과의 오류 브라우저가 죽었을 수도 있습니다. " 시나리오를 끝내는 behat. 상세Behat/Mink를 사용하여 일부 웹 사이트를 방문 할 때 셀레늄 '죽는다'

는 :

내 behat.yml 파일은 다음과 같다 :

내 FeatureContext.php 파일에서
default: 
    paths: 
    features: features 
    bootstrap: %behat.paths.features%/bootstrap 
extensions: 
    Behat\MinkExtension\Extension: 
    base_url: http://www.foo.bar 
    goutte: ~ 
    selenium2: 
     browser: 'firefox' 

나는 다음과 같은 사용자 정의 기능이 : 이제 때

public function iAmLoggedIn() 
{ 
    $session = $this->getSession(); 
    $session->visit("http://www.foo.bar"); 
{ 

을 사용자 정의 함수를 사용하는 Behat에서 시나리오를 실행합니다. 다음 오류가 발생합니다.

어떤

$session->visit("http://www.bbc.co.uk"); 

이 시간 : I 함수에 선을 편집하여 다른 웹 사이트를 시도이 내 웹 사이트 (www.foo.bar)에 문제가되었을 수도 있다는 생각 :

그러나 여기에는 이상한입니다 오류가 발생하고 시나리오가 정상적으로 계속됩니다. 좋은 오래된 BBC. 나도 시도했는지 확인하기 Goole :

$session->visit("http://www.google.com"); 

그러나 이번에는 정확히 동일한 오류가 발생합니다. '원격 브라우저와의 통신 오류. 그것은 죽을지도 모른다. ' 기묘한. 그래서 다른 웹 사이트를 시도해 봅니다. 일부는 정상적으로 작동하고 다른 오류는이 오류를 반환합니다. Selenium을 죽이는 사이트와 그렇지 않은 사이트 사이에는 명백한 유사점이없는 것으로 보입니다. Selenium은 무엇을 말하고 있습니까? 으로부터 떨어져있다

11:19:19.930 INFO - Executing: [new session: Capabilities [{platform=ANY, browserVersion=8, browserName=firefox, deviceType=tablet, selenium-version=2.31.0, name=Behat test, browser=firefox, deviceOrientation=portrait, max-duration=300, version=8}]]) 
11:19:19.936 INFO - Creating a new session for Capabilities [{platform=ANY, browserVersion=8, browserName=firefox, deviceType=tablet, selenium-version=2.31.0, name=Behat test, browser=firefox, deviceOrientation=portrait, max-duration=300, version=8}] 
11:19:24.607 INFO - Done: [new session: Capabilities [{platform=ANY, browserVersion=8, browserName=firefox, deviceType=tablet, selenium-version=2.31.0, name=Behat test, browser=firefox, deviceOrientation=portrait, max-duration=300, version=8}]] 
11:19:24.614 INFO - Executing: [get: http://www.bbc.co.uk/]) 
11:19:43.454 INFO - Done: [get: http://www.bbc.co.uk/] 
11:19:43.463 INFO - Executing: [delete all cookies]) 
11:19:46.263 INFO - Done: [delete all cookies] 
11:19:49.935 INFO - Executing: [delete all cookies]) 
11:19:49.955 INFO - Done: [delete all cookies] 
11:19:50.389 INFO - Executing: [delete session: a092aa77-ad26-4f6f-8fc1-f290b688d7fa]) 
11:19:50.488 INFO - Done: [delete session: a092aa77-ad26-4f6f-8fc1-f290b688d7fa] 

단서 : 오류를 반환하지 않는 사이트에서

11:41:41.428 INFO - Executing: [new session: Capabilities [{platform=ANY, browserVersion=8, browserName=firefox, deviceType=tablet, selenium-version=2.31.0, name=Behat test, browser=firefox, deviceOrientation=portrait, max-duration=300, version=8}]]) 
11:41:41.430 INFO - Creating a new session for Capabilities [{platform=ANY, browserVersion=8, browserName=firefox, deviceType=tablet, selenium-version=2.31.0, name=Behat test, browser=firefox, deviceOrientation=portrait, max-duration=300, version=8}] 
11:41:44.024 INFO - Done: [new session: Capabilities [{platform=ANY, browserVersion=8, browserName=firefox, deviceType=tablet, selenium-version=2.31.0, name=Behat test, browser=firefox, deviceOrientation=portrait, max-duration=300, version=8}]] 
11:41:44.031 INFO - Executing: [get: http://www.foo.bar//]) 
11:41:50.478 INFO - Executing: [delete all cookies]) 
11:41:50.494 INFO - Executing: [delete session: cee7cfa5-bc53-4804-a9a4-f6b52b0f48df]) 

출력 : '그것은 죽을 수도있다'오류를 반환하는 사이트에서

출력 사실 Selenium은 bbc.co.uk의 'get'을 완성하지만 foo.bar는 완성하지 않습니다. 그렇다면 foo.bar에 대한 액세스 로그는 어떻게됩니까? 정상적으로 보입니다.

10.179.?.? - - [06/Jan/2015:10:52:57 +0000] "GET/HTTP/1.1" 401 486 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0" 
10.179.?.? - tester [06/Jan/2015:10:52:57 +0000] "GET/HTTP/1.1" 200 33141 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0" 
10.179.?.? - tester [06/Jan/2015:10:53:00 +0000] "GET /css/page_specific_css/index.css HTTP/1.1" 200 10234 "http://www.foo.bar/" "Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0" 
10.179..?.? - tester [06/Jan/2015:10:53:00 +0000] "GET /library/jquery-tools.min.js HTTP/1.1" 200 5920 "http://www.foo.bar/" "Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0" 

10.179. CI 서버의 IP가되어 서버와 통신하고 모든 자산을 검색합니다. 그래서 이것이 Selenium 문제인지 Behat/Mink 문제인지 확실하지 않지만 손실이 있습니다. 일부 사이트가 작동하고 다른 사이트가 작동하지 않는 논리적 인 이유가없는 것 같습니다. 어떤 도움이라도 대단히 감사하겠습니다.

+0

셀레늄 구현 자바 웹 드라이버를 사용하는 동안 가끔 비슷한 문제가 발생합니다. 대부분의 경우 사용 된 브라우저와 호환되지 않는 웹 드라이버 버전입니다. 다른 브라우저로 실행 해 보셨습니까? 그리고 아마도 selnium lib와 broswer를 모두 최신 버전으로 업데이트하십시오. – MajorT

+0

대령, 전설입니다. Firefox를 33에서 34로 업데이트하고 잘 작동합니다. –

답변

0

셀렌 라이브러리와 브라우저 버전이 호환되지 않을 때이 문제가 발생합니다. 이 경우 브라우저와 셀렌 라이브러리를 모두 최신 버전으로 업데이트하는 것이 가장 좋습니다.