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.0
und 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ührtxclock
. 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.0
wenn 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)
Antworten:
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.
quelle
Ich hatte ein ähnliches Problem. Vielleicht hilft Ihnen diese Antwort auch.
Es sieht so aus, als hätten Sie zwei verschiedene Fehler:
Unable to connect to host 127.0.0.1 on port 7055
Error: no display specified
Der Grund für den
Unable to connect
Fehler 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 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 anzeigen. Unter Mac OS X müssen Sie XQuartz herunterladen , um die X11-Weiterleitung verwenden zu können.quelle
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.
quelle
Holen Sie sich die neuesten Selenium-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
quelle
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/
quelle
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.
quelle
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.
quelle
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
quelle
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 .quelle
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. :) :)
quelle
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.
quelle
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.
quelle
Installieren Sie einfach das Xvnc Plugin in Jenkins. Das Problem sollte gelöst sein.
quelle
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.
quelle
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
quelle
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.
Ich habe den Rat befolgt und das Problem wurde behoben.
quelle
So verhält es sich, wenn ich die statische Eigenschaft von IWebDriver verwendet und sie von mehreren Testmethoden aus aufgerufen habe.
Mögen
Lösung
Erstellen Sie für jeden aufrufenden Test Methoden eine neue Instanz von Driver
quelle
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
quelle
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.
quelle
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.
quelle
Starten Sie einfach das Terminal neu. Terminal ist nichts anderes aufgehängt. Danach wird alles gut funktionieren
quelle
Hinzufügen zur Wissensbasis. Wir hatten das gleiche Problem mit Bambus. Das Problem wurde mithilfe der Umwelteigenschaften von Bambus behoben.
Das Hinzufügen des Werts als Systemeigenschaften in der Datei pom.xml oder in der Befehlszeile hat nicht funktioniert.
quelle
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 ...
quelle
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
quelle
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.
quelle
Installiertes Firefox Setup 18.0.exe funktioniert bei mir
quelle
Ich hatte das gleiche Problem mit Firefox 38.
Nachdem ich die folgenden Versionsabhängigkeiten verwendet hatte, konnte ich das Problem beheben.
quelle
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 ausxvfv-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.quelle
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 !!
quelle