2013-06-12 2 views
1

У меня есть набор автоматических функций, которые фантастически работают в Firefox и Chrome, и я хотел бы запустить экземпляр IEDriver.UnreachableBrowserException пытается запустить в Selenium Webdriver с помощью IEDriver

Я установил IEDriver согласно Selenium's Google Code wiki, с правильным путем (если я изменю путь, я получаю другое исключение, так что это определенно правильно). Но по какой-то причине он по-прежнему не может запускаться и просто время от времени.

код для его запуска (последняя строка бросает исключение):

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

И исключение:

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. Таким образом, эта ошибка указывает на то, что ОС не выполнила программу драйвера. Я попытался запустить драйвер непосредственно в командной строке, чтобы увидеть, что infact 32-разрядная ОС не распознает 64-разрядный драйвер exe как исполняемую программу.

Получение правильной 32-разрядной версии IEDriver.exe решило мою проблему.

1

Мне кажется, вы используете неправильное initilization водителя. Попробуйте кусок кода из моего проекта:

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

Ах, извините - я создал переменную раньше в коде, но забыл включить ее в фрагмент. Я отредактировал этот вопрос, чтобы отразить это сейчас. Я также копировал/вставлял ваш код, конечно, изменяя путь к драйверу exe, но не пошел :(Спасибо. – yochannah

1

Я была такая же проблема. Это фиксированное для меня:

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

Я попробовал, но не радость, к сожалению :(Это сказало, для других, кто мог бы найти это полезно, вот ссылка для INTRODUCE_FLAKINESS arg: 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

Selenium WebDriver с Chrome, вопрос:

(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, то ниже код будет работать. В противном случае это будет проблема разрешения для папки 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 \ Etc) и убедитесь, что у вас есть эта линия правильно: 127.0.0.1 локальный

2

Столкнувшись аналогичное исключение при попытке выполнить скрипт Selenium над BrowserStack для мобильных устройств. И часто обнаруживается, что это исключение выбрасывается. В конечном счете, реализованные виртуальные машины задействованы, эмуляторы занимали время для загрузки и, следовательно, вызывали UnreachableBrowserException.

Написал ниже код, чтобы обработать это, установив количество попыток повтора (RetryCount) и сделав несколько попыток (retryAttempt), чтобы проверить доступность удаленного WebDriver.

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

Если вы получаете это исключение, просто загрузите новый драйвер хрома и укажите его в своем проекте. Вот и все.Работал для меня :)

Смежные вопросы