web-dev-qa-db-fra.com

Erreur de communication avec le navigateur distant. Il est peut-être mort. Pilote Web Sélénium

Voici mon journal des erreurs:

Apr 12, 2014 3:27:46 AM org.Apache.http.impl.client.DefaultRequestDirector tryConnect
INFO: I/O exception (Java.net.SocketException) caught when connecting to the target Host: Permission denied: connect
Apr 12, 2014 3:27:46 AM org.Apache.http.impl.client.DefaultRequestDirector tryConnect
INFO: Retrying connect
Apr 12, 2014 3:27:46 AM org.Apache.http.impl.client.DefaultRequestDirector tryConnect
INFO: I/O exception (Java.net.SocketException) caught when connecting to the target Host: Permission denied: connect
Apr 12, 2014 3:27:46 AM org.Apache.http.impl.client.DefaultRequestDirector tryConnect
INFO: Retrying connect
Apr 12, 2014 3:27:46 AM org.Apache.http.impl.client.DefaultRequestDirector tryConnect
INFO: I/O exception (Java.net.SocketException) caught when connecting to the target Host: Permission denied: connect
Apr 12, 2014 3:27:46 AM org.Apache.http.impl.client.DefaultRequestDirector tryConnect
INFO: Retrying connect
org.openqa.Selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died.
Build info: version: '2.41.0', revision: '3192d8a', time: '2014-03-27 17:18:15'
System info: Host: 'prgi-PC', ip: '192.168.1.9', os.name: 'Windows 7', os.Arch: 'AMD64', os.version: '6.1', Java.version: '1.7.0_51'
Driver info: driver.version: RemoteWebDriver
    at org.openqa.Selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.Java:589)
    at org.openqa.Selenium.remote.RemoteWebElement.execute(RemoteWebElement.Java:268)
    at org.openqa.Selenium.remote.RemoteWebElement.findElements(RemoteWebElement.Java:187)
    at org.openqa.Selenium.remote.RemoteWebElement.findElementsByTagName(RemoteWebElement.Java:264)
    at org.openqa.Selenium.By$ByTagName.findElements(By.Java:323)
    at org.openqa.Selenium.remote.RemoteWebElement.findElements(RemoteWebElement.Java:163)
    at com.sai.kiran.Test.main(Test.Java:155)
Caused by: Java.net.SocketException: Permission denied: connect
    at Java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at Java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.Java:83)
    at Java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.Java:339)
    at Java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.Java:200)
    at Java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.Java:182)
    at Java.net.PlainSocketImpl.connect(PlainSocketImpl.Java:172)
    at Java.net.SocksSocketImpl.connect(SocksSocketImpl.Java:392)
    at Java.net.Socket.connect(Socket.Java:579)
    at org.Apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.Java:117)
    at org.Apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.Java:178)
    at org.Apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.Java:144)
    at org.Apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.Java:131)
    at org.Apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.Java:610)
    at org.Apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.Java:445)
    at org.Apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.Java:863)
    at org.Apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.Java:72)
    at org.Apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.Java:57)
    at org.openqa.Selenium.remote.HttpCommandExecutor.fallBackExecute(HttpCommandExecutor.Java:322)
    at org.openqa.Selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.Java:301)
    at org.openqa.Selenium.firefox.internal.NewProfileExtensionConnection.execute(NewProfileExtensionConnection.Java:165)
    at org.openqa.Selenium.firefox.FirefoxDriver$LazyCommandExecutor.execute(FirefoxDriver.Java:362)
    at org.openqa.Selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.Java:568)
    ... 6 more

CODE:

FirefoxProfile profile = new FirefoxProfile();

String path="C:\\Users\\prgi\\Downloads\\listShack";
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", path);

profile.setPreference("browser.download.manager.alertOnEXEOpen", false);

profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/msword,application/csv,text/csv,image/png ,image/jpeg");

profile.setPreference("browser.download.manager.showWhenStarting",
false);

profile.setPreference("browser.download.manager.focusWhenStarting",
false);
//profile.setPreference("browser.download.useDownloadDir",true);
profile.setPreference("browser.helperApps.alwaysAsk.force",
false);

profile.setPreference("browser.download.manager.alertOnEXEOpen", false);

profile.setPreference("browser.download.manager.closeWhenDone", false);

profile.setPreference("browser.download.manager.showAlertOnComplete", false);
profile.setPreference("browser.download.manager.useWindow",
false);

profile.setPreference("browser.download.manager.showWhenStarting",false);

profile.setPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting",
false);

profile.setPreference("pdfjs.disabled", true);

WebDriver driver = new FirefoxDriver(profile);

et à partir de là, je gère mes éléments ..

note: cela a fonctionné deux jours sans interruption 24/7 et aujourd'hui je reçois cette erreur fréquemment.

12
saikiran

Problème

J'ai eu le même problème en exécutant InternetExplorerDriver localement dans Windows 7 - (IEDriverServer_Win32_2.42.0.Zip)

org.openqa.Selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died.

Lorsque j'ai vérifié les processus en cours sous TaskManager, plusieurs processus IEDriverServer.exe étaient en cours d'exécution et n'avaient pas été nettoyés correctement.

Solution

L'exécution de la commande suivante a tué tous les processus IEDriverServer.exe en cours d'exécution et résolu ce problème (pour moi).

taskkill /F /IM IEDriverServer.exe
10
Nick Grealy

Pour moi, utiliser un port commençant par 1 plutôt que par un port proche de la valeur de port par défaut 5555 m'a causé cette erreur. Changer le port du noeud de 1234 à 5558 a résolu le problème. Je ne sais pas comment les ports fonctionnent mais il semble que 1234 était instable

0
Alex McCabe

J'ai suivi ces étapes et le problème a été résolu:

  1. obtenir le nom du profil firefox 

    • essayez cette commande sur la fenêtre d'exécution firefox.exe -P ou firefox.exe -P ou firefox.exe -profilemanager

Une des commandes ci-dessus s’ouvrira et affichera le nom du profil par défaut qui est nomaly "default".

  1. Utilisez le code mentionné ci-dessous pour obtenir le pilote firefox

    ProfilesIni allProfiles = new ProfilesIni();
    FirefoxProfile myProfile = allProfiles.getProfile("default");
    myProfile.setAcceptUntrustedCertificates(true);
    myProfile.setAssumeUntrustedCertificateIssuer(true);
    driver = new FirefoxDriver(myProfile);
    
0