2013-06-12 3 views
1

J'ai un ensemble d'automatisations qui fonctionnent de manière fantastique dans Firefox et Chrome, et je voudrais aussi lancer une instance d'IEDriver.UnreachableBrowserException essayant de lancer dans Selenium Webdriver utilisant IEDriver

J'ai configuré IEDriver selon Selenium's Google Code wiki, avec le bon chemin (si je change le chemin, je reçois une exception différente, donc c'est tout à fait correct). Mais pour une raison quelconque, il ne peut toujours pas être lancé, et juste expiré.

Le code pour le lancer (la dernière ligne lève l'exception):

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

Et l'exception est:

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 

Répondre

2

Je frappais cette même erreur, puis trouvé cette question. Dans mon cas, il s'est avéré que j'avais la version 64 bits de l'IEDriver.exe sur mon système, mais j'étais sur une plate-forme Windows 32 bits. Donc, cette erreur indiquait que le système d'exploitation n'a pas réussi à exécuter le programme du pilote. J'ai essayé d'exécuter le pilote directement dans une invite de commande pour voir que le système d'exploitation 32 bits ne reconnaissait pas le pilote 64 bits exe comme un programme exécutable. Obtenir le bon 32 bits IEDriver.exe résolu mon problème.

1

Il me semble que vous utilisez le pilote incorrect initilization. Essayez morceau de code de mon projet:

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

Ah, désolé - j'avais créé la variable plus tôt dans le code, mais j'ai oublié de l'inclure dans l'extrait. J'ai modifié la question pour refléter cela maintenant. J'ai également copié/collé votre code, en modifiant le chemin vers le pilote exe bien sûr, mais pas aller :(Merci cependant – yochannah

1

J'ai eu le même problème. Ce qu'il fixe pour moi:

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

Je l'ai essayé, mais pas de joie, malheureusement :(Cela dit, pour d'autres qui pourraient trouver c'est utile, voici la référence pour l'argument INTRODUCE_FLAKINESS: http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/ie/InternetExplorerDriver.html et une référence utile pour DesiredCapabilities: http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/ie/InternetExplorerDriver.html – yochannah

2

Sélénium WebDriver avec Chrome, numéro:

(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 

Si vous obtenez au-dessus de problème, accédez à l'emplacement chromedriver.exe et essayer d'exécuter l'exe. Si vous êtes capable d'exécuter l'exe, le code ci-dessous fonctionnera. Sinon, ce sera un problème d'autorisation pour le dossier chromedriver. Changez l'emplacement du dossier ou donnez l'autorisation au dossier et double-cliquez sur chromedriver.exe.

Solution:

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

    WebDriver driver3 = new ChromeDriver(); 
+1

Merci pour la réponse ici ... malheureusement, le problème que j'ai posté est spécifiquement à faire avec IEDriver, pas Chrome... – yochannah

2

Aller aux hôtes (C: \ Windows \ system32 \ drivers \ etc) et assurez-vous que vous avez correctement cette ligne: 127.0.0.1 localhost

2

exception similaire Confronté tout en essayant d'exécuter le script de Sélénium sur BrowserStack pour les appareils mobiles. Et souvent trouvé cette exception étant levée. Éventuellement, étant donné que des machines virtuelles étaient impliquées, les émulateurs prenaient le temps de démarrer et provoquaient ainsi UnreachableBrowserException.

Ecrivez le code ci-dessous pour gérer cela, en définissant Nombre de tentatives de réessayer (RetryCount) et effectué plusieurs tentatives (retryAttempt) pour vérifier la disponibilité de Remote 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

Si vous obtenez l'exception this, il suffit de télécharger le nouveau pilote chrome et de fournir le dans votre projet. C'est tout.Travaillé pour moi :)

Questions connexes