Webdriver Nach 45000 ms kann keine Verbindung zum Host 127.0.0.1 an Port 7055 hergestellt werden


138

Ich habe eine Box, in der ich Tests durchführe. Es scheint, als würde Jenkins Befehle eingeben und ausführen, die in dem jeweiligen Job beschrieben sind, der ausgeführt wird.

Hier versuche ich, meine Selenium Webdriver-Tests auszuführen, aber es zeigt mir, dass ich Fehler beim Starten von Firefox habe. Die Endidee ist, die Webtests vollständig auf dieser Box auszuführen und auch einige Screenshots von Fehlern zu machen.

Ich verwende Selenium-Java-2.25.jar, Firefox 10, Linux OS.

Das Lustige ist, dass ich manuell in die Box ssh, vorübergehend das magische Cookie eines anderen Benutzers auf die Box kopieren kann (um einen X-Tunnel zu erhalten), einen mache export DISPLAY=mydisplay:1.0und dann meine Selentests mit ant starte. Und dies wird Firefox und die Tests in Ordnung bringen.

Es gibt hier verschiedene Threads, die genau das gleiche Problem zu haben scheinen, und ich denke, ich habe die meisten ausprobiert. Folgendes habe ich getan:

  • Starten Sie die Box neu und melden Sie sich mit VNC wieder an.

  • Platzierte ein Bash-Skript in Jenkins, um es auszuführen, bevor Selentests ausgeführt werden. Das Bash-Skript macht im Grunde nur eine export DISPLAY=mydisplay:1.0. Es wird auch ausgeführt xclock. Dies funktioniert, da ich sehe, dass xclock im VNC angezeigt wird.

  • iptables wurden ausgeschaltet

  • Firefox befindet sich korrekt in / usr / bin / Firefox

  • sshd_config zeigt an, dass X11Forwarding wahr ist.

  • Angeblich hat das Herabstufen von Firefox einigen Leuten geholfen, aber ich möchte dies nicht tun. Webdriver sollte ohnehin FF 10 unterstützen.

Keiner der oben genannten Punkte löst jedoch das Problem.

Es scheint nicht, dass Port 7055 auf localhost überhaupt existiert:

netstat -an | grep 7055 - Es wird nichts gedruckt

Das sagt mein / etc / hosts:

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

Vielleicht hat es etwas mit localhost zu tun: 7055 nicht vorhanden? Ich bin mir nicht sicher, wohin ich von hier aus gehen soll. Warum sagt die Fehlerausgabe dennoch, dass sie gesucht wird, display: :0.0wenn ich sie angegeben habe mydisplay:1.0?

Und schließlich die Fehlerausgabe, die ich erhalte:

[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)

Ich habe dieses Problem unter Selen 2.31.0
Dima Star

Ich habe dieses Problem mit Selenium 2.47.1 und sehe nicht die Meldung, dass der Firefox-Treiberserver an Port XXXX gestartet wurde. Stattdessen erhalte ich ein leeres Fenster, das geöffnet wird und keine Kontrolle über den Browser hat, vorausgesetzt, der Port wurde nicht geöffnet, um auf Drahtprotokollbefehle aus dem Test zu warten.
Djangofan

Es scheint, dass die Kombination von Selenium Server 2.47.1 und Firefox 40 in Ordnung ist und für mich nicht mit Firefox 41 funktioniert.
Rostislav Matl

Wenn Sie keine grafische Benutzeroberfläche in Ihrer Box haben und Ihre Tests in der Box mit Firefox ausführen, wird dieser Fehler angezeigt. Ich schlage vor, Sie versuchen es mit Xvfb im Speicheranzeigetreiber. Dies kann auch ein Problem der Kompatibilität der Firefox-Version und der Selen-Version sein.
Prasanta Biswas

Antworten:


91

Ich weiß nicht, ob Sie dieses Problem gelöst haben, aber ich habe das gleiche Problem gerade von der anderen Seite gelöst.

Es scheint, dass Selenium und Firefox Schwierigkeiten haben, miteinander zu sprechen. Ich vermute, dass Firefox Änderungen in einer Reihe von Versionen "weiterentwickelt", sodass die Abwärts- und Vorwärtskompatibilität nicht immer garantiert ist und Inkompatibilität immer den gleichen Fehler zu erzeugen scheint.

Mein Problem begann, als ich von FF 15 auf FF 16 wechselte. Unter Ubuntu geschieht dies automatisch auf magische Weise zusammen mit anderen Upgrades, aber ich glaube, dies war die entscheidende Änderung.

Das Problem wurde durch den Wechsel von Selen 2.24.1 zu Selen 2.25.0 behoben

Da bei der Selenänderung nur die JAR-Datei heruntergeladen und anstelle der alten ausgeführt wird, lohnt es sich, dies als schnelle und einfache Fehlerbehebung zu versuchen. Wenn dies nicht hilft, wechseln Sie einfach zurück. In Ihrem Fall bin ich mir nicht sicher, welche Version von Selenium ich ausprobieren soll, aber ich denke, 2.24 sollte mit FF 10 funktionieren.

Ein weiteres Problem, das ich in der Vergangenheit festgestellt habe, ist, dass Firefox unter Ubuntu nicht als Root ausgeführt wird. Dies geschieht, wenn Selenium als Dienst ausgeführt wird oder wenn es möglicherweise über ein Bash-Skript oder einen Cron-Job gestartet wird. Dies kann erklären, warum es für Sie läuft, aber nicht für Jenkins.


2
Ich verwende FF 19.0 und Selen-Server-Standalone-2.29.0.jar in Ubuntu. Als ich meine Selentests in Jenkins ausführte, wurde der gleiche Fehler angezeigt: org.openqa.selenium.firefox.NotConnectedException: Nach 45000 ms konnte keine Verbindung zum Host 127.0.0.1 auf Port 7055 hergestellt werden. Firefox-Konsolenausgabe: [testng] Fehler: keine Anzeige angegeben [testng] Fehler: keine Anzeige angegeben
Ripon Al Wasim

@RiponAlWasim Haben Sie Glück, das Problem zu lösen? Ich verwende 2.31.0 und habe das gleiche Problem.
Petr Peller

@Petr Peller: Was ist die Version Ihres FF?
Ripon Al Wasim

1
Dies scheint ein fortwährendes Problem zu sein. Ich habe diesen Fehler mit Selenium Webdriver 2.47 und Firefox 44 erhalten. Das Aktualisieren von Selenium Webdriver auf 2.53 hat ihn behoben.
B sieben

1
tl; dr - Upgrade - Selen (.jar - Dateien hier - selenium-release.storage.googleapis.com/index.html )
rinogo

14

Ich hatte ein ähnliches Problem. Vielleicht hilft Ihnen diese Antwort auch.

Es sieht so aus, als hätten Sie zwei verschiedene Fehler:

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

Der Grund für den Unable to connectFehler ist, dass die Version von Selenium Server nicht weiß, wie sie mit der neueren Version von Firefox arbeiten soll. Sie müssen eine neuere Version des Selenium Servers herunterladen, die die neuere Version von Firefox unterstützt.

Der Grund für den Error: no display specifiedFehler ist, dass Firefox gestartet wird, aber auf dem Remote-Host kein X-Server (GUI) ausgeführt wird. Sie können die X11-Weiterleitung verwenden, um Firefox auf dem Remote-Host auszuführen, aber auf Ihrem lokalen Host anzeigen. Unter Mac OS X müssen Sie XQuartz herunterladen , um die X11-Weiterleitung verwenden zu können.


13

Sie müssen die Browserkompatibilität überprüfen, bevor Sie sich für einen Test mit Selenium entscheiden:

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

Dies könnte helfen, die obige Frage zu beantworten.


Dies war das Problem, auf das ich gestoßen bin. Und es war in meinem Fall nicht der Browser. Es war das zugrunde liegende Betriebssystem. Ich benutze Mac OS X - Yosemite. Und nur das neueste Selen scheint damit zu arbeiten.
Ajit S

2
Link ist unterbrochen Sir
Mido


6

Ich habe dieses Problem behoben, indem ich meinen Firefox auf eine ältere Version heruntergestuft habe, die zuvor mit Selenium-WebDriver gut funktioniert hatte. In meinem Fall musste ich ein Downgrade auf Firefox 18 durchführen und diese Version funktionierte mit Selenium 2.27

Hier ist der Link, um ältere Versionen von Firefox zu erhalten: https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/


5

Dieses Problem hat mich lange verfolgt und ich habe gesehen, dass eine funktionierende Lösung für den Fall von Firefox darin bestand, den aktualisierten Firefox-Treiber zu verwenden .

  • Wenn Ihre Firefox-Upgrades automatisch durchgeführt werden, tritt dieses Problem möglicherweise gelegentlich auf. Es sieht so aus, als würden sich Firefox-Leute zu schnell entwickeln, oder sie kümmern sich nicht um die Abwärtskompatibilität.

  • Jedes Mal, wenn ich dieses Problem in meinen alten Skripten sehe, überprüfe ich, ob sich die Firefox-Version seitdem geändert hat - meistens.

  • Dann gehe ich zu Maven Repo für Selenium Firefox Treiber Repo - http://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-firefox-driver und lade die neueste Version herunter.

  • oder aktualisiere meine pom.xml (wenn maven verwendet wird) mit der neuen Version des Firefox-Treibers - 2.40.0

  • Es gibt keine einfache Möglichkeit, dieses Problem zu vermeiden, es sei denn, Sie blockieren das automatische Update von Firefox wirklich explizit (Sie können dies (auf Mac) in den Einstellungen - Erweitert - Update - Wählen Sie "Nach Updates suchen, aber lassen Sie mich entscheiden, ob sie installiert werden sollen". )

  • Wenn Ihre Skripte in einem automatisierten Modus ausgeführt werden, möchten Sie möglicherweise Updates deaktivieren. Dies kann jedoch zu anderen Problemen führen. Da die meisten Personen / Benutzer möglicherweise standardmäßig Firefox-Updates aktiviert haben. Ihre Anwendung wird also in späteren Versionen nicht wirklich getestet.


5

Ich hatte Firefox 47 und Selenium 2.53 und bekam den gleichen Fehler. Meine Lösung war Firefox 47 in Firefox 46 zu ändern , das Problem wurde gelöst.


4

Aktualisieren Sie Selengläser, laden Sie Selen 2.31.0 herunter

Dieses Problem wurde von den Selen-Leuten behoben

Dies war ein Kompatibilitätsproblem.

Prost


3

Das Problem mit dem Skript besteht darin, dass die für das Skript verwendete Umgebung nicht mit der für Ihre Tests verwendeten übereinstimmt. Das Festlegen der Umgebungsvariablen dort führt also nicht zu Ihren Tests.

Um die Variable richtig einzustellen, müssen Sie sie in Jenkins einstellen. Gehen Sie zu Jenkins verwalten> Knoten verwalten> Master> Konfigurieren . Aktivieren Sie das Kontrollkästchen Umgebungsvariablen , geben Sie DISPLAY in das Namensfeld ein und setzen Sie den Wert auf: 1.0.

Außerdem müssen Sie Berechtigungen festlegen und versuchen, Ihre xhost-Zugriffssteuerung xhost +im Terminal zu deaktivieren .


1
Das "xhost +" hat mein Problem behoben, nämlich dass beim Ausführen des Web-Treibers mit sudo kein Browser geöffnet wurde - jetzt funktioniert es.
Nick Perkins

2

Ich hatte auch das gleiche Problem. Immer wenn wir oder der Webdriver sich öffnen, sucht der FF-Browser nach Updates, falls vorhanden. In diesem Fall werde ich versuchen, während der Ausführungszeit zu aktualisieren, und dann wird der Fehler angezeigt, auch wenn er ordnungsgemäß aktualisiert wurde, nur weil Sie die Selenium-Version nicht entsprechend aktualisiert haben.

Navigieren Sie zu " http://docs.seleniumhq.org/download/ " und laden Sie die neueste Version herunter. Überprüfen Sie jetzt, ob das Problem tatsächlich behoben ist. :) :)


1

Ich habe den gleichen Fehler bekommen; Ich habe Selenium-Java Version 2.25.0 und Firefox Version 18.0.2 verwendet. Ich habe die Version von Selenium-Java auf 2.30.0 geändert und funktioniert jetzt.


1

Verwenden Sie zur Behebung dieses Problems neue JAR-Dateien, die unter http://docs.seleniumhq.org/download/ verfügbar sind . Für Java, C #, PHP usw. erfordert Firefox 27.0.1 die Treiberversion 2.39.0.


Für mich funktioniert es auch mit Firefox 29.0 und Selentreiber 2.39.0 (Bevor ich das gleiche Problem bei lubuntu 14.0.4 hatte)
Huluvu424242

1

Installieren Sie einfach das Xvnc Plugin in Jenkins. Das Problem sollte gelöst sein.


1

Ich habe den gleichen Fehler "selenium_Unable to connect to host 127.0.0.1 on port 7055" erhalten Lösung: Ich habe selenium-java-2.48.2 mit Firefox Version 43.0.1 verwendet und jetzt funktioniert es gut.


1

Auch ich hatte das gleiche Problem, aber das Problem wurde behoben, nachdem die Firefox-Version auf 35.0.1 heruntergestuft wurde und meine Selen-Version 2.43 ist


1

Ich hatte genau das gleiche Problem beim Ausführen von Docker, aber ich fand die Lösung im Protokoll vor dem von Ihnen erwähnten Fehler.

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)

Ich habe den Rat befolgt und das Problem wurde behoben.


0

So verhält es sich, wenn ich die statische Eigenschaft von IWebDriver verwendet und sie von mehreren Testmethoden aus aufgerufen habe.

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()
    {
        ...
    }

    ...
}

Mögen

 [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("Контакт"));
 }

Lösung

Erstellen Sie für jeden aufrufenden Test Methoden eine neue Instanz von Driver

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

0

Aktualisieren Sie Selen-Gläser, wenn unser Selen-Skript nicht ausgeführt wird. Derzeit verwende ich Selen-Java-2.43.0-srcs

Jetzt funktioniert es gut


0

Es passiert auf verschiedenen Versionen von ff. Ich verwende die neueste ff-Version 39, indem ich selenium-server-standalone-2.41.0.jar und selenium-java-2.41.0.zip verwende, die denselben Fehler anzeigen.

Holen Sie sich hier die neuesten Server- und Client-JAR-Dateien , um die Kompatibilität zu gewährleisten, die ich für die Server- und Client-Versionen 2.47.0 bzw. 2.47.1 verwendet habe. Und Boom! Es funktionierte.


0

Dies geschieht aufgrund alter Versionen. Aktualisieren Sie einfach den Browser auf die neueste Version und aktualisieren Sie das Selenium-Webdriver-Paket auf die neueste Version.


0

Starten Sie einfach das Terminal neu. Terminal ist nichts anderes aufgehängt. Danach wird alles gut funktionieren


0

Hinzufügen zur Wissensbasis. Wir hatten das gleiche Problem mit Bambus. Das Problem wurde mithilfe der Umwelteigenschaften von Bambus behoben.

DISPLAY=":1"

Das Hinzufügen des Werts als Systemeigenschaften in der Datei pom.xml oder in der Befehlszeile hat nicht funktioniert.


0

Unter Windows: Überprüfen Sie auch die "Bitness" Ihres Firefox. Firefox 43.0.1 64bit funktioniert nicht mit Selenium 2.50.0. Funktioniert gut mit Firefox 43.0.1 32bit ...


0

Auch ich war drei Tage lang bei diesem Fehler festgefahren und habe es schließlich herausgefunden. Sie können die Antwort sehen, die ich hier gegeben habe. Dies ist ein Kompatibilitätsproblem mit Browser und Selenserver. Ich hoffe, dies hilft. Sie können die Browserkompatibilität über diesen Link überprüfen


0

Ich hatte heute das gleiche Problem. Um das Problem zu beheben, habe ich Firefox Version 51 auf 47 herabgestuft und es funktioniert.

Hinweis: Ich verwende ein Linux Ubuntu Mate in einer virtuellen Box, wobei der Host ein anderes Ubuntu Mate ist. Alle Betriebssysteme sind 64 Bit und Firefox auch.



0

Ich hatte das gleiche Problem mit Firefox 38.

Nachdem ich die folgenden Versionsabhängigkeiten verwendet hatte, konnte ich das Problem beheben.

    <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

Ich denke, dies könnte ein Problem der Anzeige sein. Wenn Sie keine grafische Benutzeroberfläche in der Box haben, führt das Starten von Firefox über den Selenium-Webdriver zu diesem Fehler.

Um dies zu beheben, installieren Sie zuerst Xvfb [ yum install Xvfb -y] (einen Treiber für virtuelle Anzeigen) in der Box. Dann führen Sie Ihren Test von Jenkins mit aus xvfv-run -a -d <your test execution command>. Dadurch wird der Browser in einem virtuellen Anzeigepuffer gestartet. Außerdem können Screenshots mit dem Selenium-Webdriver erstellt werden.


-1

Lösung -

1) Aktualisieren Sie Ihren Selenium Server, dh das Selenium jar "selenium-server-standalone-2.xx.x.JAR" auf " selenium -server-standalone-2.45.0.JAR".

2) Aktualisieren Sie Ihren Selenium Client-Treiber, dh den Selenium Libs-Ordner "selenium-java-2.xx.x" auf "selenium-java-2.45.0".

3) Überprüfen und installieren Sie die kompatible Firefox-Version

Siehe - Laden Sie aktualisierte Selenium libs & jar herunter, dh Version 2.45.0

Dies wird Ihr Problem lösen .. Prost !!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.