Tengo una caja donde ejecuto pruebas. Parece que Jenkins podría ingresar y ejecutar comandos descritos en el trabajo específico que se está ejecutando.
Aquí estoy tratando de ejecutar mis pruebas de Selenium Webdriver, pero me dice que tengo errores al iniciar Firefox. La idea final es ejecutar las pruebas web en este cuadro por completo, y también tomar algunas capturas de pantalla de los errores.
Estoy usando selenium-java-2.25.jar, firefox 10, linux OS.
Lo curioso es que puedo ingresar manualmente en la caja, copiar temporalmente la cookie mágica de otro usuario en la caja (para obtener un túnel X), hacer una export DISPLAY=mydisplay:1.0
, y luego iniciar mis pruebas de selenio usando hormiga. Y esto abrirá Firefox y las pruebas estarán bien.
Hay varios hilos aquí que parecen tener exactamente el mismo problema, y creo que he probado la mayoría de ellos. Esto es lo que hice:
Reinicie el cuadro, vuelva a iniciar sesión con VNC.
Se colocó un script bash en Jenkins para ejecutarse antes de ejecutar las pruebas de selenio. El script bash básicamente solo hace un
export DISPLAY=mydisplay:1.0
. También se ejecutaxclock
. Esto funciona ya que puedo ver que xclock se muestra en el VNC.iptables han sido apagados
firefox está ubicado correctamente en / usr / bin / firefox
sshd_config muestra que X11Forwarding es verdadero.
Supuestamente, la degradación de Firefox ayudó a algunas personas, pero no deseo hacer esto. Webdriver debería admitir FF 10 de todos modos.
Sin embargo, ninguno de los anteriores resuelve el problema.
Parece que el puerto 7055 en localhost ni siquiera existe:
netstat -an | grep 7055
- Nada imprime
Esto es lo que dice mi / etc / hosts:
1 127.0.0.1 localhost.localdomain localhost
2 ::1 localhost6.localdomain6 localhost6
Tal vez tiene algo que ver con localhost: 7055 no existe? No estoy seguro de a dónde ir desde aquí. Aún así, ¿por qué la salida de error dice que está buscando display: :0.0
cuando he especificado mydisplay:1.0
?
Y finalmente la salida de error que recibo:
[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)