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)