it-swarm.com.de

Webdriver Verbindung zu Host 127.0.0.1 über Port 7055 nach 45000 ms nicht möglich

Ich habe eine Box, in der ich Tests durchführe. Es scheint, als würde Jenkins Befehle ausführen, die in dem jeweiligen Job beschrieben sind, der gerade 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 sshen kann, vorübergehend den Magic Cookie von einem anderen Benutzer auf der Box kopiere (um einen X-Tunnel zu erhalten), einen export DISPLAY=mydisplay:1.0 Durchführe und dann meine Selenium-Tests mit ant starte. Und das wird Firefox und die Tests in Ordnung bringen.

Es gibt verschiedene Themen, die genau dasselbe Problem zu haben scheinen, und ich glaube, ich habe die meisten ausprobiert. Folgendes habe ich getan:

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

  • In Jenkins wurde ein Bash-Skript eingefügt, das ausgeführt werden soll, bevor Selenium-Tests ausgeführt werden. Das Bash-Skript führt im Grunde nur einen export DISPLAY=mydisplay:1.0 Aus. Es führt auch xclock aus. Dies funktioniert so, wie ich sehe, dass die Uhr im VNC angezeigt wird.

  • iptables wurden deaktiviert

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

  • sshd_config zeigt an, dass X11Forwarding den Wert true hat.

  • Angeblich hat ein Downgrade von Firefox einigen Leuten geholfen, aber ich möchte das nicht tun. Der Webdriver sollte FF 10 trotzdem unterstützen.

Keines der oben genannten Verfahren löst jedoch das Problem.

Es scheint nicht so, als ob Port 7055 auf localhost überhaupt existiert:

netstat -an | grep 7055 - Es wird nichts gedruckt

Das sagt meine/etc/hosts:

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

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

Und zum Schluss die Fehlermeldung, 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)
136
user1636922

Ich weiß nicht, ob Sie dieses Problem behoben haben, aber ich habe gerade dasselbe Problem 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 Releases "entwickelt". Daher ist die Abwärts- und Aufwärtskompatibilität nicht immer garantiert, und Inkompatibilität scheint immer den gleichen Fehler zu verursachen.

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

Das Problem wurde durch die Umstellung von Selen 2.24.1 auf Selen 2.25.0 behoben

Da die Selenium-Änderung nur darin besteht, die JAR-Datei herunterzuladen und anstelle der alten zu starten, 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 Selenium-Version 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 ist der Fall, wenn Selenium als Dienst ausgeführt wird oder möglicherweise von einem Bash-Skript oder Cron-Job gestartet wird. Dies mag erklären, warum es für Sie läuft, aber nicht für Jenkins.

91
user1771179

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

Es sieht so aus, als ob Sie zwei verschiedene Fehler haben:

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

Der Grund für die Unable to connect Fehler ist, dass die Version von Selenium Server nicht weiß, wie man mit der neueren Version von Firefox arbeitet. Sie müssen eine neuere Version von Selenium Server herunterladen, die die neuere Version von Firefox unterstützt.

Der Grund für die Error: no display specified Fehler 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 anzuzeigen. Unter Mac OS X müssen Sie XQuartz herunterladen, um die X11-Weiterleitung verwenden zu können.

14
Andrew

Sie müssen die Browserkompatibilität überprüfen, bevor Sie mit Selenium testen können:

https://github.com/SeleniumHQ/Selenium/blob/master/Java/CHANGELOG

Dies kann zur Beantwortung der obigen Frage beitragen.

13
Viraj Pai

Holen Sie sich die neuesten Selen-Gläser (2.30) für FireFox 19

Sie können die neuesten Gläser (2.31 zum Zeitpunkt des Schreibens) hier herunterladen: https://code.google.com/p/Selenium/downloads/list

8
Henock Gashaw

Ich habe dieses Problem behoben, indem ich meinen Firefox auf eine ältere Version heruntergestuft habe, die zuvor gut mit Selenium-WebDriver funktioniert hat. 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/

6
gps

Ich hatte Firefox 47 und Selenium 2.5, und ich habe den gleichen Fehler bekommen. Meine Lösung war, Firefox 47 auf Firefox 46 zu ändern, das Problem wurde behoben.

5
BrennQuin

Dieses Problem hat mich lange verfolgt und ich habe gesehen, dass eine funktionierende Lösung für 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 ob sich Firefox-Leute zu schnell entwickeln oder sich nicht um die Abwärtskompatibilität kümmern.

  • 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 driver repo - http://mvnrepository.com/artifact/org.seleniumhq.Selenium/selenium-firefox-driver und lade die neueste Version herunter.

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

  • Es gibt keine einfache Möglichkeit, dieses Problem zu umgehen, wenn Sie das automatische Update von Firefox nicht wirklich explizit blockieren (Sie können dies (auf Mac) in den Einstellungen - Erweitert - Update - "Nach Updates suchen, aber ich kann entscheiden, ob ich sie installieren möchte" auswählen. )

  • 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 Benutzer möglicherweise Firefox-Updates standardmäßig aktiviert haben. Daher wird Ihre Anwendung in späteren Versionen nicht wirklich getestet.

5

Selenium-Gläser aktualisieren, Selenium 2.31.0 herunterladen

Dieses Problem wurde von den Selenium-Jungs behoben

Dies war ein Kompatibilitätsproblem.

Prost

4
Prabhat

Das Problem mit dem Skript besteht darin, dass die für das Skript verwendete Umgebung nicht mit der für Ihre Tests verwendeten Umgebung identisch ist. Das Festlegen der Umgebungsvariablen hat daher keine Auswirkungen auf Ihre 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 mgebungsvariablen, geben Sie in das Namensfeld DISPLAY ein und setzen Sie den Wert auf: 1.0.

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

3
aajenkins

Ich hatte auch das gleiche Problem. Wenn wir oder der Web-Treiber geöffnet werden, sucht der FF-Browser nach Updates. In diesem Fall werde ich versuchen, während der Ausführungszeit zu aktualisieren, und dann wird der Fehler auch dann angezeigt, wenn er ordnungsgemäß aktualisiert wurde, nur weil Sie die Selenium-Version nicht ordnungsgemäß aktualisiert haben.

Navigieren Sie zu " http://docs.seleniumhq.org/download/ " und laden Sie die neueste Version herunter. Jetzt geh und überprüfe, ob das Problem tatsächlich gelöst ist. :)

2
Mani P

Ich hatte genau das gleiche Problem beim Ausführen von Docker, fand jedoch 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.

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
Radu L.

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
Samir 007

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. ist in Firefox 27.0.1 die Treiberversion 2.39.0 erforderlich.

1
Ankit K Gupta

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

1
Tarique

Ich hatte auch das gleiche Problem, aber das Problem wurde behoben, nachdem ich die Firefox-Version auf 35.0.1 heruntergestuft hatte und meine Selenium-Version 2.43 war

1

Hinzufügen zur Wissensbasis. Wir hatten das gleiche Problem mit Bamboo. Das Problem wurde mithilfe der Umgebungseigenschaften 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
Pool

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

0
Sachin Mour

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 einen Linux-Ubuntu-Mate in einer virtuellen Box, wobei Host ein weiterer Ubuntu-Mate ist. Alle Betriebssysteme sind auch 64-Bit und Firefox.

0
Topera

Ich hatte das gleiche Problem mit Firefox 38.

Nachdem ich die folgenden Versionsabhängigkeiten verwendet habe, 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, das könnte ein Anzeigeproblem sein. Wenn Sie keine GUI in der Box haben, würde das Starten von Firefox über Selenium Webdriver diesen Fehler verursachen.

Um dies zu beheben, installieren Sie zuerst Xvfb [yum install Xvfb -y] (ein virtueller Bildschirmtreiber) in der Box. Dann starte deinen Test von jenkins mit xvfv-run -a -d <your test execution command>. Dadurch wird der Browser in einem virtuellen Anzeigepuffer gestartet. Es ist auch in der Lage, Screenshots mit Selenium Webdriver zu bekommen.

0
Prasanta Biswas

Auch ich war drei Tage mit diesem Fehler beschäftigt und habe es endlich herausgefunden. Sie können die Antwort sehen, die ich gegeben habe hier . Dies ist ein Kompatibilitätsproblem mit dem Browser und dem Selenium-Server. Ich hoffe, das hilft. Sie können die Browserkompatibilität über diesen Link überprüfen

0
sagar chapagain

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
Ivan

Dies liegt an alten Versionen. Aktualisieren Sie einfach den Browser auf die neueste Version und aktualisieren Sie das Selenium-Webtreiberpaket auf die neueste Version.

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

Jetzt funktioniert es gut

0
swathi

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 die neuesten Server- und Client-JAR-Dateien hier für die Kompatibilität, die ich für die Server- und Client-Versionen 2.47.0 und 2.47.1 verwendet habe. Und Boom! Es funktionierte.

0
AHashmi

Installierte Firefox Setup 18.0.exe funktioniert bei mir

0
Enayath Ali

So hat es sich verhalten, als ich die statische Eigenschaft von IWebDriver verwendet und sie über mehrere Testmethoden 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 jede aufrufende Testmethode 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
ZbynekSulc