web-dev-qa-db-fra.com

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

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

Ici, j'essaie de lancer 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 quelques captures d'écran des erreurs.

J'utilise Selenium-Java-2.25.jar, Firefox 10, Linux.

La chose amusante 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 Selenium avec ant. Et cela fera apparaître Firefox et les tests très bien.

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

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

  • Jenkins a placé un script bash à exécuter avant d'exécuter les tests Selenium. Le script bash fait simplement un export DISPLAY=mydisplay:1.0. Il exécute également xclock. Cela fonctionne car je peux voir que xclock est affiché dans le VNC.

  • iptables ont été éteints

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

  • sshd_config montre que X11Forwarding a la valeur true.

  • Supposément rétrograder Firefox a aidé certaines personnes, mais je ne souhaite pas le faire. Webdriver devrait quand même supporter 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:

netstat -an | grep 7055 - Rien n'est imprimé

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 où aller d'ici. Pourtant, pourquoi la sortie d'erreur indique-t-elle qu'elle recherche display: :0.0 lorsque 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)
136
user1636922

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 ont des difficultés à communiquer l'un avec l'autre - je soupçonne que Firefox "évolue" sur plusieurs versions, de sorte que la compatibilité entre les versions précédentes et suivantes n'est pas toujours garantie, et que l'incompatibilité semble toujours générer la même erreur.

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

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

Comme la modification de Selenium 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 solution de dépannage rapide et facile - si cela ne vous aide pas, revenez simplement en arrière. Dans votre cas, je ne sais pas quelle version de Selenium essayer, mais je pense que la version 2.24 devrait fonctionner avec FF 10.

Un autre problème que j'ai découvert par le passé est que Firefox ne fonctionnerait pas en tant que root sur Ubuntu. Cela se produit si Selenium est exécuté en tant que service, ou éventuellement s'il est lancé à partir d'un script bash ou d'un travail cron. Cela peut expliquer pourquoi cela fonctionne pour vous mais pas pour Jenkins.

91
user1771179

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:

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

La raison de l'erreur Unable to connect est que la version de Selenium Server ne sait pas comment travailler avec la version la plus récente de Firefox. Vous devez télécharger une version plus récente du serveur Selenium prenant en charge la version la plus récente de Firefox.

La raison de l'erreur Error: no display specified est que Firefox est en cours de lancement, mais aucun serveur X (interface graphique) ne s'exécute 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. Sous Mac OS X, vous devez télécharger XQuartz pour pouvoir utiliser le transfert X11.

14
Andrew

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.

13
Viraj Pai

Obtenez les dernières jarres de sélénium (2,30) pour FireFox 19

Vous pouvez télécharger les derniers bocaux (2,31 au moment de l'écriture) ici: https://code.google.com/p/Selenium/downloads/list

8
Henock Gashaw

J'ai résolu ce problème en rétrogradant Firefox vers une version plus ancienne qui fonctionnait bien avec Selenium-WebDriver. Dans mon cas, je devais 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/

6
gps

J'ai eu Firefox 47 et Selenium 2.5, et j'ai eu la même erreur. Ma solution était de remplacer Firefox 47 par Firefox 46, le problème était résolu.

5
BrennQuin

Ce problème me hante depuis longtemps et j'ai vu une solution qui fonctionnait dans le cas de Firefox: utiliser le pilote firefox mis à niveau .

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

  • Chaque fois que je vois ce problème dans mes anciens scripts, je vérifie si la version de firefox a changé depuis - la plupart du temps, c'est le cas.

  • Ensuite, je vais au repo maven pour le repo du pilote Selenium firefox - http://mvnrepository.com/artifact/org.seleniumhq.Selenium/selenium-firefox-driver et téléchargez la dernière version.

  • ou mettre à jour mon fichier pom.xml (si maven est utilisé) avec la nouvelle version du pilote Firefox actuellement - 2.40.0

  • Il n’est pas facile d’éviter ce problème, sauf si vous bloquez explicitement la mise à jour automatique de Firefox (vous pouvez le faire (sur Mac) dans les préférences - Avancé - Mise à jour - Sélectionnez "Rechercher les mises à jour, mais laissez-moi choisir de les installer". )

  • Si vos scripts s'exécutent en mode automatisé, vous souhaiterez peut-être 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 réellement testée sur les versions ultérieures.

5

Mise à jour des pots Selenium, téléchargez Selenium 2.31.0

Ce problème a été résolu par les gars de Selenium

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

À votre santé

4
Prabhat

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. Par conséquent, définir les variables d'environnement à cet endroit ne fait rien pour vos tests.

Pour définir correctement la variable, vous devez la définir dans Jenkins. Allez dans Manage Jenkins> Manage Nodes> Master> Configure. Cochez la case Variables d'environnement, puis entrez DISPLAY dans la zone de nom et définissez la valeur sur: 1.0.

En outre, vous devez définir des autorisations. Essayez de désactiver vos contrôles d’accès xhost à l’aide de xhost + dans le terminal.

3
aajenkins

J'ai aussi fait face au même problème. Chaque fois que nous ou WebDriver ouvrons, le navigateur FF vérifiera les mises à jour, le cas échéant. Dans ce cas, je vais essayer de mettre à jour pendant le temps d'exécution et vous obtiendrez alors l'erreur même si elle est mise à jour correctement simplement parce que vous n'avez pas mis à jour la version de Selenium correctement.

Naviguez jusqu'à " 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. :)

2
Mani P

J'ai eu exactement le même problème en cours d'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ésolu.

1

J'ai eu la même erreur; J'ai utilisé Selenium-Java version 2.25.0 et Firefox vresion 18.0.2; J'ai changé la version de Selenium-Java vers la version 2.30.0 et fonctionne maintenant.

1
Radu L.

J'ai la même erreur "Selenium_Unable pour se connecter à l'hôte 127.0.0.1 sur le port 7055" Solution: J'ai utilisé Selenium-Java-2.48.2 avec Firefox version 43.0.1 et cela fonctionne désormais bien.

1
Samir 007

Pour résoudre ce problème, utilisez les nouveaux fichiers JAR disponibles sur http://docs.seleniumhq.org/download/ . En ce qui concerne Java, C #, php, etc ... Firefox 27.0.1 requiert 2.39.0 de la version du pilote.

1
Ankit K Gupta

Il suffit d'installer le plug-in Xvnc dans Jenkins. Le problème devrait être résolu.

1
Tarique

Moi aussi j'ai eu le même problème, mais le problème est résolu après la mise à niveau de Firefox vers la version 35.0.1 et ma version de Selenium est la version 2.43.

1

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

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 ne fonctionnait pas.

0
Pool

Il suffit de redémarrer le terminal. Terminal est pendu rien d'autre. Tout fonctionnera bien après ça

0
Sachin Mour

J'ai eu le même problème aujourd'hui. Pour corriger, j'ai mis à niveau la version 51 de firefox 51 à 47 et cela fonctionne.

Remarque: J'utilise Linux Ubuntu Mate, dans une boîte virtuelle, avec Host étant un autre Ubuntu Mate. Tous les systèmes d'exploitation sont 64 bits et firefox également.

0
Topera

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

Après avoir utilisé les dépendances de version suivantes, j'ai pu 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 Selenium Webdriver produirait 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, lancez votre test à partir de Jenkins avec xvfv-run -a -d <your test execution command>. Cela lancera le navigateur dans un tampon d'affichage virtuel. En outre, il est capable d'obtenir des captures d'écran en utilisant Selenium WebDriver.

0
Prasanta Biswas

Moi aussi, je suis resté bloqué à cette erreur pendant trois jours et je l’ai enfin compris. Vous pouvez voir la réponse que j’ai donnée ici . C’est un problème de compatibilité entre le navigateur et le serveur Selenium. J'espère que cela vous aidera. Vous pouvez vérifier la compatibilité du navigateur de ce lien

0
sagar chapagain

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 32bit ...

0
Ivan

Cela se produit à cause des anciennes versions. Il suffit de mettre à jour le navigateur avec la dernière version et de mettre à jour le package WebDriver Selenium avec la dernière version.

0

Mettez à jour les pots Selenium si notre script Selenium n'est pas en cours d'exécution. Actuellement, j'utilise Selenium-Java-2.43.0-srcs

Maintenant ça fonctionne bien

0
swathi

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 affiche la même erreur.

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

0
AHashmi

Installé Firefox Setup 18.0.exe cela fonctionne pour moi

0
Enayath Ali

C'est ainsi que je me suis comporté lorsque j'ai utilisé la propriété statique d'IWebDriver et que je l'ai appelée à 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 pilote.

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