2013-06-12 3 views
1

저는 Firefox와 Chrome에서 훌륭하게 작동하는 일련의 자동화 기능을 보유하고 있으며 IEDriver 인스턴스도 시작하려고합니다.UnreachableBrowserException이 IEDriver를 사용하여 Selenium Webdriver에서 실행하려고 시도했습니다.

정확한 경로로 Selenium's Google Code wiki에 따라 IEDriver를 설정했습니다 (경로를 변경하면 다른 예외가 발생하므로 정확하게 맞습니다). 그러나 웬일인지 그것은 아직도 발사 될 수없고, 단지 시간을 초과한다.

 File ieDriver = new File("C:/Users/whatever/path/IEDriverServer.exe"); 
     System.setProperty("webdriver.ie.driver", ieDriver.getAbsolutePath()); 
     WebDriver ie = new InternetExplorerDriver(); 

을 그리고 예외는 다음과 같습니다 :

코드

그것을 실행 (마지막 줄은 예외를 throw) 그것은 나에게 보인다

Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure. 
Build info: version: '2.33.0', revision: '4ecaf82108b2a6cc6f006aae81961236eba93358', time: '2013-05-22 12:00:17' 
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_21' 
Driver info: driver.version: InternetExplorerDriver 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:216) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:201) 
    at org.openqa.selenium.ie.InternetExplorerDriver.run(InternetExplorerDriver.java:184) 
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:174) 
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:143) 
    at uk.co.know.kiteTest.WebDriverManager.<init>(WebDriverManager.java:52) 
    at uk.co.know.kiteTest.RunAutomations.main(RunAutomations.java:13) 
Caused by: org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start. 
Build info: version: '2.33.0', revision: '4ecaf82108b2a6cc6f006aae81961236eba93358', time: '2013-05-22 12:00:17' 
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_21' 
Driver info: driver.version: InternetExplorerDriver 
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:165) 
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:62) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:527) 
    ... 7 more 
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:38622/status] to be available after 20014 ms 
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:104) 
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:163) 
    ... 9 more 
Caused by: com.google.common.util.concurrent.UncheckedTimeoutException: java.util.concurrent.TimeoutException 
    at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:143) 
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:79) 
    ... 10 more 

답변

2

그때 나는이 같은 오류가 타격되었다이 질문을 발견했다. 제 경우에는 64 비트 버전의 IEDriver.exe가 시스템에 있었지만 32 비트 Windows 플랫폼을 사용하고있었습니다. 따라서이 오류는 OS가 드라이버 프로그램을 실행하지 못했음을 나타냅니다. 나는 명령 프롬프트에서 드라이버를 직접 실행하여 32 비트 OS가 64 비트 드라이버 인 exe를 실행 프로그램으로 인식하지 못했음을 확인했습니다.

올바른 32 비트 IEDriver.exe 받기가 내 문제를 해결했습니다.

1

당신은 잘못된 드라이버시 초기화를 사용합니다. 내 프로젝트에서 코드 조각을 사용해보십시오 :

File file = new File("C:/Selenium/iexploredriver.exe"); 
System.setProperty("webdriver.ie.driver", file.getAbsolutePath()); 
WebDriver driver = new InternetExplorerDriver(); 
+0

아, 미안 해요 - 내가 코드에서 이전 변수를 만들었지 만 발췌 문장에 그것을 잊어 버렸습니다. 지금 이것을 반영하기 위해 질문을 편집했습니다. 나는 또한 복사/붙여 넣기 코드를 붙여 드라이버의 경로를 수정하는 물론 물론,하지만 갈 수 없다 :(감사합니다.) – yochannah

1

나는 동일한 문제가있었습니다. 이것은 나를 위해 그것을 고정 :

DesiredCapabilities capabilitiesIE = DesiredCapabilities.internetExplorer(); 
capabilitiesIE.setCapability(
    InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); 
WebDriver driver = new InternetExplorerDriver(capabilitiesIE); 
+0

나는 그것을 시도했지만 기쁨, 불행히도 : 유용합니다. 다음은 INTRODUCE_FLAKINESS 인수에 대한 참조입니다. http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/ie/InternetExplorerDriver.html 및 DesiredCapabilities에 대한 유용한 참고 자료 : http :// /selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/ie/InternetExplorerDriver.html – yochannah

2

셀레늄 WebDriver를 크롬으로, 문제 :

(org.openqa.selenium.remote.UnreachableBrowserException) solution 
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure. 
Build info: version: '2.35.0', revision: '8df0c6b', time: '2013-08-12 15:43:19' 
System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_40' 
Driver info: driver.version: ChromeDriver 

당신은 문제가 위에 얻고 경우, chromedriver.exe 위치로 이동하여 EXE 파일을 실행하려고합니다. exe를 실행할 수 있으면 아래 코드가 작동합니다. 그렇지 않으면 chromedriver 폴더에 대한 권한 문제가됩니다. 폴더 위치를 변경하거나 폴더에 대한 권한을 제공하고 chromedriver.exe를 두 번 클릭하십시오.

해결책 :

System.setProperty("webdriver.chrome.driver", "C:/Driver/chromedriver.exe"); 
    System.out.println(System.getProperty("webdriver.chrome.driver")); 

    WebDriver driver3 = new ChromeDriver(); 
+1

답변을 주셔서 감사합니다 ... 불행히도 게시 한 문제는 구체적으로 IEDriver와 관련이 있습니다. 크롬... – yochannah

2

이동 호스트 (C : \ Windows \ system32 \ drivers를 등 \) 와 제대로이 행이 있는지 확인하십시오 : BrowserStack을 통해 셀레늄 스크립트를 실행하는 동안 127.0.0.1 localhost를

2

에 직면 유사한 예외를 모바일 장치 용. 그리고 종종이 예외가 던져진다. 결국 가상 머신이 관련되어 있음을 알게되자 에뮬레이터는 부팅 할 시간이 걸리므로 UnreachableBrowserException이 발생했습니다..

재시도 횟수 (RetryCount)를 설정하고 원격 WebDriver의 가용성을 확인하기 위해 여러 번 시도 (retryAttempt)하여이 문제를 처리하는 코드를 작성했습니다.

while(retryAttempt<=retryCount){ 
      try{ 

       WebDriver driver = new RemoteWebDriver(new URL(URL), caps); 
       return driver; 
      } 
      catch(UnreachableBrowserException e){ 
       Thread.sleep(10000); 
       if(retryAttempt>retryCount){ 
        logger.error("Remote Web Driver cannot be reached at this moment"); 
       } 
      } 
     } 
0

이 예외가 발생하면 새 크롬 드라이버를 다운로드하고 프로젝트에 제공하십시오. 그게 전부 야.나를 위해 일했습니다 :)

관련 문제