Webdriver Impossible de se connecter à l'hôte 127.0.0.1 sur le port 7055 après 45000 ms


138

J'ai une boîte où j'exécute des tests. Il semble que Jenkins ssh in et exécute les commandes décrites dans le travail spécifique en cours d'exécution.

Ici, j'essaie d'exécuter mes tests Selenium Webdriver, mais cela me dit que j'ai des erreurs lors du lancement de Firefox. L'idée finale est d'exécuter entièrement les tests Web sur cette boîte et de prendre également des captures d'écran d'erreurs.

J'utilise selenium-java-2.25.jar, firefox 10, Linux OS.

Ce qui est drôle, c'est que je peux ssh manuellement dans la boîte, copier temporairement le cookie magique d'un autre utilisateur sur la boîte (pour obtenir un tunnel X), faire un export DISPLAY=mydisplay:1.0, puis lancer mes tests de sélénium en utilisant ant. Et cela fera apparaître Firefox et les tests très bien.

Il y a différents threads ici qui semblent avoir exactement le même problème, et je pense que j'ai essayé la plupart d'entre eux. Voici ce que j'ai fait:

  • Redémarrez la boîte, reconnectez-vous avec VNC.

  • Placement d'un script bash dans Jenkins à exécuter avant d'exécuter les tests de sélénium. Le script bash fait simplement un export DISPLAY=mydisplay:1.0. Il exécute également xclock. Cela fonctionne comme je peux voir xclock affiché dans le VNC.

  • iptables ont été désactivés

  • firefox est correctement situé dans / usr / bin / firefox

  • sshd_config montre que X11Forwarding est vrai.

  • Le déclassement supposé de Firefox a aidé certaines personnes, mais je ne souhaite pas le faire. Webdriver devrait de toute façon prendre en charge FF 10.

Cependant, rien de ce qui précède ne résout le problème.

Il ne semble pas que le port 7055 sur localhost existe même:

netstat -an | grep 7055 - Rien ne s'imprime

Voici ce que dit mon / etc / hosts:

  1 127.0.0.1               localhost.localdomain localhost
  2 ::1             localhost6.localdomain6 localhost6

Peut-être que cela a quelque chose à voir avec localhost: 7055 n'existe pas? Je ne sais pas trop où aller d'ici. encore, pourquoi la sortie d'erreur indique-t-elle qu'il recherche display: :0.0lorsque j'ai spécifié mydisplay:1.0?

Et enfin la sortie d'erreur que je reçois:

[testng] org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Error: cannot open display: :0.0
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Error: cannot open display: :0.0
[testng] 
[testng]    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:109)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:245)
[testng]    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:109)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:185)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:178)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:174)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:92)
[testng]    at com.test.webtest.browser.BrowserFactory.createBrowser(BrowserFactory.java:24)
[testng]    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[testng]    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[testng]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[testng]    at java.lang.reflect.Method.invoke(Method.java:601)

J'ai reproduit ce problème sous sélénium 2.31.0
Dima Star

J'ai ce problème avec Selenium 2.47.1 et je ne vois pas le message indiquant que le serveur de pilotes Firefox a démarré sur le port XXXX. Au lieu de cela, j'obtiens une fenêtre vide qui s'ouvre et aucun contrôle sur le navigateur, en supposant que le port ne s'est pas ouvert pour écouter les commandes de protocole filaire du test.
djangofan

Il semble que la combinaison du serveur Selenium 2.47.1 et de Firefox 40 est OK, ne fonctionne pas avec Firefox 41 pour moi.
Rostislav Matl

Si vous n'avez pas d'interface graphique dans votre boîte et que vous exécutez vos tests dans la boîte en utilisant Firefox, vous obtenez cette erreur. Je vous suggère d'essayer avec Xvfb dans le pilote d'affichage de la mémoire. Ou cela pourrait également être un problème de compatibilité de la version Firefox et de la version sélénium.
Prasanta Biswas

Réponses:


91

Je ne sais pas si vous avez résolu ce problème, mais je viens de résoudre le même problème de l'autre côté.

Il semble que Selenium et Firefox aient du mal à se parler - je soupçonne que Firefox `` évolue '' sur un certain nombre de versions, donc la compatibilité ascendante et descendante n'est pas toujours garantie et l'incompatibilité semble toujours générer la même erreur.

Mon problème a commencé lorsque je suis passé de FF 15 à FF 16. Sous Ubuntu, cela se produit automatiquement par magie avec d'autres mises à niveau, mais je crois que c'était le changement critique.

Le problème a été résolu en passant de Selenium 2.24.1 à Selenium 2.25.0

Comme le changement de sélénium consiste simplement à télécharger le fichier jar et à l'exécuter à la place de l'ancien, cela vaut la peine d'essayer cela comme un outil de dépannage rapide et facile - si cela n'aide pas, revenez simplement en arrière. Dans votre cas, je ne sais pas quelle version de Selenium essayer, mais je pense que 2.24 devrait fonctionner avec FF 10.

Un autre problème que j'ai trouvé dans le passé est que Firefox ne fonctionnait pas en tant que root sur Ubuntu. Cela se produit si Selenium s'exécute en tant que service, ou éventuellement s'il est déclenché à partir d'un script bash ou d'une tâche cron. Cela peut expliquer pourquoi il fonctionne pour vous mais pas pour Jenkins.


2
J'utilise FF 19.0 et selenium-server-standalone-2.29.0.jar dans Ubuntu. Lorsque j'ai exécuté mes tests de sélénium dans Jenkins, j'ai eu la même erreur: org.openqa.selenium.firefox.NotConnectedException: Impossible de se connecter à l'hôte 127.0.0.1 sur le port 7055 après 45000 ms. Sortie de la console Firefox: [testng] Erreur: aucun affichage spécifié [testng] Erreur: aucun affichage spécifié
Ripon Al Wasim

@RiponAlWasim Une chance pour résoudre le problème? J'utilise 2.31.0 et j'ai le même problème.
Petr Peller

@Petr Peller: quelle est la version de votre FF?
Ripon Al Wasim

1
Cela semble être un problème permanent. J'ai eu cette erreur avec Selenium Webdriver 2.47 et Firefox 44. La mise à jour de Selenium Webdriver à 2.53 l'a corrigé.
B Seven

1
tl; dr - Mettre à niveau Selenium (fichiers .jar ici - selenium-release.storage.googleapis.com/index.html )
rinogo

14

J'ai eu un problème similaire. Peut-être que cette réponse vous aidera également.

Il semble que vous ayez deux erreurs différentes en cours:

  1. Unable to connect to host 127.0.0.1 on port 7055
  2. Error: no display specified

La raison de l' Unable to connecterreur est que la version de Selenium Server ne sait pas comment fonctionner avec la nouvelle version de Firefox. Vous devez télécharger une version plus récente du serveur Selenium qui prend en charge la nouvelle version de Firefox.

La raison de l' Error: no display specifiederreur est que Firefox est en cours de lancement, mais aucun serveur X (GUI) n'est en cours d'exécution sur l'hôte distant. Vous pouvez utiliser le transfert X11 pour exécuter Firefox sur l'hôte distant, mais l'afficher sur votre hôte local. Sur Mac OS X, vous devrez télécharger XQuartz pour utiliser le transfert X11.


13

Vous devez vérifier la compatibilité du navigateur avant de choisir de tester avec Selenium:

https://github.com/SeleniumHQ/selenium/blob/master/java/CHANGELOG

Cela pourrait aider à répondre à la question ci-dessus.


C'était le problème que j'ai rencontré. Et ce n'était pas le navigateur dans mon cas. C'était le système d'exploitation sous-jacent. J'utilise Mac OS X - Yosemite. Et seul le dernier sélénium semble fonctionner avec.
Ajit S

2
link is broken sir
mido


6

J'ai résolu ce problème en rétrogradant mon Firefox vers une version plus ancienne qui fonctionnait auparavant bien avec Selenium-WebDriver. Dans mon cas, j'ai dû revenir à Firefox 18 et cette version fonctionnait avec Selenium 2.27

Voici le lien pour obtenir les anciennes versions de Firefox: https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/


5

Ce problème me hante depuis longtemps et j'ai vu qu'une solution de travail dans le cas de Firefox était d' utiliser le pilote Firefox mis à jour .

  • Si vos mises à niveau de Firefox se produisent automatiquement, vous pouvez rencontrer ce problème de temps en temps. On dirait que les gars de Firefox se développent trop vite ou qu'ils ne se soucient pas de la compatibilité descendante.

  • Chaque fois que je vois ce problème sur mes anciens scripts, je vérifie si la version de Firefox a changé depuis, la plupart du temps.

  • Ensuite, je vais à maven repo pour le repo de pilotes selenium firefox - http://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-firefox-driver et je télécharge la dernière version.

  • ou mettre à jour mon pom.xml (si maven est utilisé) avec la nouvelle version du pilote Firefox dès maintenant c'est - 2.40.0

  • Il n'y a pas de moyen facile d'éviter ce problème à moins que vous ne bloquiez vraiment explicitement la mise à jour automatisée de Firefox (Vous pouvez le faire (sur Mac) dans les préférences - Avancé - Mise à jour - Sélectionnez "Vérifier les mises à jour, mais laissez-moi choisir de les installer" )

  • Si vos scripts s'exécutent en mode automatisé, vous pouvez désactiver les mises à jour. Cependant, cela peut créer d'autres problèmes. Étant donné que la plupart des personnes / utilisateurs peuvent avoir les mises à jour de Firefox activées par défaut. Votre application n'est donc pas vraiment testée sur les versions ultérieures.


5

J'avais Firefox 47 et Selenium 2.53 , et j'ai eu la même erreur. Ma solution était de changer Firefox 47 en Firefox 46 , le problème a été résolu.


4

Mettre à jour les pots de sélénium, télécharger le sélénium 2.31.0

Ce problème a été résolu par les gars du sélénium

C'était un problème de compatibilité.

À votre santé


3

Le problème avec le script est que l'environnement utilisé pour le script n'est pas le même que celui utilisé pour vos tests, donc la définition des variables d'environnement ne fait rien pour vos tests.

Pour définir correctement la variable, vous devez la définir dans Jenkins. Accédez à Gérer Jenkins> Gérer les nœuds> Maître> Configurer . Cochez la case Variables d'environnement , puis entrez DISPLAY dans la zone de nom et définissez la valeur sur: 1.0.

De plus, vous devrez définir des autorisations, essayez de désactiver vos contrôles d'accès xhost à l'aide xhost +du terminal.


1
Ce "xhost +" a résolu mon problème, qui était que l'exécution du webdriver avec sudo n'ouvrait pas un navigateur - maintenant cela fonctionne.
Nick Perkins

2

J'ai également rencontré le même problème. Chaque fois que nous ou le webdriver ouvrirons, le navigateur FF vérifiera les mises à jour, le cas échéant. Dans ce cas, j'essaierai de mettre à jour pendant le temps d'exécution et vous obtiendrez l'erreur même si elle est correctement mise à jour simplement parce que vous n'avez pas mis à jour la version de Selenium de manière appropriée.

Accédez à " http://docs.seleniumhq.org/download/ " et téléchargez la dernière version. Maintenant, allez vérifier, le problème serait résolu, en effet. :)


1

J'ai eu la même erreur; J'ai utilisé la version 2.25.0 de sélénium-java et la version 18.0.2 de Firefox; J'ai changé la version de selenium-java en 2.30.0 et fonctionne maintenant.


1

Pour résoudre ce problème, utilisez les nouveaux fichiers jar disponibles sur http://docs.seleniumhq.org/download/ . Comme pour java, C #, php etc ... Firefox 27.0.1 nécessite 2.39.0 de la version du pilote.


Pour moi, cela fonctionne aussi avec Firefox 29.0 et le pilote sélénium 2.39.0 (Avant, j'avais le même problème à lubuntu 14.0.4)
Huluvu424242

1

Installez simplement Xvnc Plugin dans Jenkins. Le problème doit être résolu.


1

J'ai eu la même erreur "selenium_Unable to connect to host 127.0.0.1 sur le port 7055" Solution: j'ai utilisé selenium-java-2.48.2 avec Firefox version 43.0.1 et maintenant ça marche bien.


1

Moi aussi j'ai eu le même problème mais le problème est résolu après la rétrogradation de la version de Firefox à 35.0.1 et ma version de sélénium est 2.43


1

J'ai eu exactement le même problème lors de l'exécution de docker mais j'ai trouvé la solution dans le journal précédant l'erreur que vous avez mentionnée.

selenium_1  | 2016-11-11 11:19:34,498 DEBG 'xvfb' stderr output:
selenium_1  | (EE)
selenium_1  | Fatal server error:
selenium_1  | (EE) Server is already active for display 99
selenium_1  |   If this server is no longer running, remove /tmp/.X99-lock
selenium_1  |   and start again.
selenium_1  | (EE)

J'ai suivi les conseils et le problème a été réglé.


0

C'est ainsi que cela se comporte lorsque j'utilise la propriété statique d'IWebDriver et que je l'appelle à partir de plusieurs méthodes de test.

public class LanguageMenu
{
    private static IWebDriver drv;

    static LanguageMenu()
    {
       drv = Driver.Instance;
    }
    ...

    public static void English()
    {
        drv.FindElement(By.Id("mvc_lang_en"));
        el.Click();
    }

    public static void Rusian()
    {
        ...
    }

    ...
}

Comme

 [TestMethod]
 public void Language_SwitchTo_English()
 {
     LanguageMenu.English();
     Assert.IsTrue(ContactPage.IsAt("Contact"));
 }

 [TestMethod]
 public void Language_SwitchTo_Rusian()
 {
     LanguageMenu.English();
     Assert.IsTrue(ContactPage.IsAt("Контакт"));
 }

Solution

Pour chaque méthode de test appelante, créez une nouvelle instance de Driver

 private static void English()
 {
            var drv = Driver.Instance;
            var el = drv.FindElement(By.Id("mvc_lang_en"));
            el.Click();
 }

0

Mettez à jour les pots de sélénium si notre script de sélénium ne s'exécute pas. Actuellement, j'utilise selenium-java-2.43.0-srcs

Maintenant ça fonctionne bien


0

Cela se produit sur différentes versions de ff. J'utilise la dernière version 39 de FF en utilisant selenium-server-standalone-2.41.0.jar et selenium-java-2.41.0.zip qui montre la même erreur.

Obtenez les derniers fichiers jar serveur et client ici pour la compatibilité que j'ai utilisée respectivement avec les versions serveur et client 2.47.0 et 2.47.1. Et Boom! Ça a marché.


0

Cela se produit à cause des anciennes versions. Mettez simplement à jour le navigateur vers la dernière version et mettez à jour le package selenium webdriver vers la dernière version.


0

Redémarrez simplement le terminal. Terminal est pendu rien d'autre. Tout fonctionnera bien après ça


0

Ajout à la base de connaissances. Nous avons eu le même problème sur Bamboo. Le problème a été résolu en utilisant les propriétés environnementales du bambou.

DISPLAY=":1"

L'ajout de la valeur en tant que propriétés système dans le fichier pom.xml ou la ligne de commande n'a pas fonctionné.


0

Sous Windows: vérifiez également le "bitness" de votre Firefox. Firefox 43.0.1 64 bits ne fonctionne pas avec Selenium 2.50.0. Fonctionne bien avec Firefox 43.0.1 32 bits ...


0

Moi aussi , je suis coincé à cette erreur pendant trois jours et finalement pensé qu'il out.You peut voir la réponse que j'ai donné ici .C'est problème de compatibilité du serveur navigateur et le sélénium. J'espère que cela vous aidera.Vous pouvez vérifier la compatibilité du navigateur à partir de ce lien


0

J'ai eu le même problème aujourd'hui. Pour réparer, j'ai rétrogradé la version 51 de Firefox à 47 et cela fonctionne.

Remarque: j'utilise un Linux Ubuntu Mate, dans une boîte virtuelle, l'hôte étant un autre Ubuntu Mate. Tous les OS sont 64 bits et Firefox également.



0

J'ai eu le même problème avec Firefox 38.

Après avoir utilisé les dépendances de version suivantes, je pourrais résoudre le problème.

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.53.0</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-firefox-driver</artifactId>
        <version>2.53.0</version>
    </dependency> 

0

Je pense que cela pourrait être un problème d'affichage. Si vous n'avez pas d'interface graphique dans la boîte, le lancement de Firefox à partir de sélénium Webdriver donnerait cette erreur.

Pour résoudre ce problème, installez d'abord Xvfb [ yum install Xvfb -y] (un pilote d'affichage virtuel) dans la boîte. Ensuite, exécutez votre test depuis jenkins avec xvfv-run -a -d <your test execution command>. Cela lancera le navigateur dans un tampon d'affichage virtuel. Il est également capable d'obtenir des captures d'écran à l'aide du pilote Web sélénium.


-1

Solution -

1) Mettez à niveau votre serveur Selenium, c'est-à-dire le pot de sélénium "selenium-server-standalone-2.xx.x.JAR" TO "selenium-server-standalone-2.45.0.JAR"

2) Mettez à niveau votre pilote client Selenium, c'est-à-dire le dossier sélénium libs "selenium-java-2.xx.x" TO "selenium-java-2.45.0"

3) Vérifiez et installez la version compatible de Firefox

Refer - Télécharger les libs et jar de sélénium mis à jour ie version 2.45.0

Cela résoudra votre problème .. Cheers !!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.