Webdriver No se puede conectar al host 127.0.0.1 en el puerto 7055 después de 45000 ms

138

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 ejecuta xclock. 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.0cuando 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)
usuario1636922
fuente
Reproduje este problema en selenium 2.31.0
Dima Star
Tengo este problema con Selenium 2.47.1 y no veo el mensaje de que el servidor del controlador Firefox se inició en el puerto XXXX. En cambio, aparece una ventana en blanco que se abre y no hay control sobre el navegador, suponiendo que el puerto no se abrió para escuchar los comandos de protocolo de cable de la prueba.
djangofan
Parece que la combinación de Selenium server 2.47.1 y Firefox 40 está bien, no funciona con Firefox 41 para mí.
Rostislav Matl
Si no tiene GUI en su caja y está ejecutando sus pruebas en la caja usando Firefox, obtiene este error. Le sugiero que pruebe con Xvfb en el controlador de pantalla de memoria. O esto también podría ser un problema de la versión de Firefox y la compatibilidad de la versión de selenio.
Prasanta Biswas

Respuestas:

91

No sé si resolvió este problema, pero acabo de resolver el mismo problema desde el otro lado.

Parece que Selenium y Firefox tienen dificultades para comunicarse entre sí. Sospecho que Firefox 'evoluciona' los cambios en varias versiones, por lo que la compatibilidad con versiones anteriores y posteriores no siempre está garantizada, y la incompatibilidad siempre parece generar el mismo error.

Mi problema comenzó cuando me mudé de FF 15 a FF 16. Al ejecutarse en Ubuntu, esto sucede automáticamente mágicamente junto con otras actualizaciones, pero creo que este fue el cambio crítico.

El problema se resolvió al pasar de Selenium 2.24.1 a Selenium 2.25.0

Como el cambio de selenio es solo descargar el archivo jar y ejecutarlo en lugar del anterior, vale la pena intentarlo como un solucionador de problemas rápido y fácil; si no ayuda, simplemente regrese. En su caso, no estoy seguro de qué versión de Selenium probar, pero creo que 2.24 debería funcionar con FF 10.

Otro problema que he encontrado en el pasado es que Firefox no se ejecutaría como root en Ubuntu. Esto sucede si Selenium se está ejecutando como un servicio, o posiblemente si se activa desde un script bash o un trabajo cron. Esto puede explicar por qué funciona para usted, pero no para Jenkins.

usuario1771179
fuente
2
Estoy usando FF 19.0 y selenium-server-standalone-2.29.0.jar en Ubuntu. Cuando ejecuté mis pruebas de selenio en Jenkins, obtuve el mismo error: org.openqa.selenium.firefox.NotConnectedException: no se puede conectar al host 127.0.0.1 en el puerto 7055 después de 45000 ms. Salida de la consola de Firefox: [testng] Error: no se especificó la pantalla [testng] Error: no se especificó la pantalla
Ripon Al Wasim
@RiponAlWasim ¿Tuviste suerte resolviendo el problema? Estoy ejecutando 2.31.0 y tengo el mismo problema.
Petr Peller
@Petr Peller: ¿cuál es la versión de tu FF?
Ripon Al Wasim
1
Esto parece ser un problema continuo. Recibí este error con Selenium Webdriver 2.47 y Firefox 44. La actualización de Selenium Webdriver a 2.53 lo solucionó.
B Seven
1
tl; dr - Actualizar Selenium (archivos .jar aquí - selenium-release.storage.googleapis.com/index.html )
rinogo
14

Tuve un problema similar Quizás esta respuesta también te ayude.

Parece que tienes dos errores diferentes:

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

La razón del Unable to connecterror es que la versión de Selenium Server no sabe cómo funcionar con la versión más reciente de Firefox. Debe descargar una versión más reciente de Selenium Server que sea compatible con la versión más reciente de Firefox.

La razón del Error: no display specifiederror es que Firefox se está iniciando, pero no hay ningún servidor X (GUI) ejecutándose en el host remoto. Puede usar el reenvío X11 para ejecutar Firefox en el host remoto, pero mostrarlo en su host local. En Mac OS X, deberá descargar XQuartz para utilizar el reenvío X11.

Andrés
fuente
13

Debe verificar la compatibilidad del navegador antes de optar por probar con Selenium:

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

Esto podría ayudar a responder la pregunta anterior.

Viraj Pai
fuente
Este fue el problema que encontré. Y no fue el navegador en mi caso. Era el sistema operativo subyacente. Estoy usando Mac OS X - Yosemite. Y solo el último selenio parece estar funcionando con él.
Ajit S
2
enlace está roto señor
mido
6

Resolví este problema bajando mi Firefox a una versión anterior que anteriormente había funcionado bien con Selenium-WebDriver. En mi caso, tuve que bajar a Firefox 18 y esta versión funcionó con Selenium 2.27

Aquí está el enlace para obtener versiones anteriores de firefox: https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/

GPS
fuente
5

Este problema me ha perseguido durante mucho tiempo y he visto que una solución que funciona en el caso de Firefox era usar el controlador actualizado de Firefox .

  • Si las actualizaciones de Firefox se realizan automáticamente, es posible que de vez en cuando enfrente este problema. Parece que los chicos de Firefox se están desarrollando demasiado rápido o no les importa la compatibilidad con versiones anteriores.

  • Cada vez que veo este problema en mis scripts anteriores, verifico si la versión de Firefox ha cambiado desde entonces, la mayoría de las veces lo es.

  • Luego voy al repositorio de Maven para el repositorio del controlador de selenio firefox - http://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-firefox-driver y descargo la última versión.

  • o actualizar mi pom.xml (si se usa Maven) con la nueva versión del controlador de Firefox en este momento es - 2.40.0

  • No hay una manera fácil de evitar este problema a menos que realmente bloquee explícitamente la actualización automatizada de Firefox (puede hacer esto (en Mac) en las preferencias - Avanzado - Actualización - Seleccione "Buscar actualizaciones, pero déjame elegir si instalarlas" )

  • Si sus scripts se ejecutan en modo automatizado, es posible que desee deshabilitar las actualizaciones. Sin embargo, esto puede crear otros problemas. Dado que la mayoría de las personas / usuarios pueden tener las actualizaciones de Firefox habilitadas de forma predeterminada. Por lo tanto, su aplicación no se está probando realmente en ninguna versión posterior.

software.wikipedia
fuente
5

Tenía Firefox 47 y Selenium 2.53 , y obtuve el mismo error. Mi solución fue cambiar Firefox 47 a Firefox 46 , el problema se resolvió.

BrennQuin
fuente
4

Actualice los tarros de selenio, descargue selenium 2.31.0

Este problema ha sido resuelto por los chicos de selenio

Este fue un problema de compatibilidad.

Salud

Prabhat
fuente
3

El problema con el script es que el entorno utilizado para el script no es el mismo que el utilizado para sus pruebas, por lo que establecer las variables de entorno no hace nada para sus pruebas.

Para establecer correctamente la variable, debe establecerla en Jenkins. Vaya a Administrar Jenkins> Administrar nodos> Maestro> Configurar . Marque la casilla de verificación Variables de entorno , luego ingrese DISPLAY en el cuadro de nombre y establezca el valor en: 1.0.

Además, deberá establecer permisos, intente deshabilitar sus controles de acceso xhost usando xhost +en el terminal.

aajenkins
fuente
1
Ese "xhost +" solucionó mi problema, que era que ejecutar el controlador web con sudo no estaba abriendo un navegador, ahora funciona.
Nick Perkins el
2

También enfrenté el mismo problema. Cada vez que nosotros o el webdriver se abran, el navegador FF buscará las actualizaciones, si las hay. En ese caso, intentaré actualizar durante el tiempo de ejecución y luego recibirá el error incluso si se actualiza correctamente solo porque no ha actualizado la versión de Selenium adecuadamente.

Vaya a " http://docs.seleniumhq.org/download/ " y descargue la última versión. Ahora ve y comprueba, el problema se resolvería, de hecho. :)

Mani P
fuente
1

Tengo el mismo error; He usado selenium-java versión 2.25.0 y Firefox vresion 18.0.2; He cambiado la versión de selenium-java a 2.30.0 y ahora funciona.

Radu L.
fuente
1

Para resolver este problema, use nuevos archivos jar disponibles en http://docs.seleniumhq.org/download/ . Como corresponde a java, C #, php, etc ... Firefox 27.0.1 requiere la versión 2.39.0 del controlador.

Ankit K Gupta
fuente
Para mí funciona con Firefox 29.0 y el controlador de selenio 2.39.0 también (antes tenía el mismo problema en lubuntu 14.0.4)
Huluvu424242
1

Simplemente instale el complemento Xvnc en Jenkins. El problema debe ser resuelto.

Tarique
fuente
1

Recibí el mismo error "selenium_Unable to connect to host 127.0.0.1 on port 7055" Solución: He usado selenium-java-2.48.2 con Firefox versión 43.0.1 y ahora funciona bien.

Samir 007
fuente
1

Yo también tuve el mismo problema, pero el problema se resuelve después de degradar la versión de Firefox a 35.0.1 y mi versión de selenio es 2.43

SHAIK NAWAZ SHAREEF
fuente
1

Tuve exactamente el mismo problema al ejecutar Docker, pero encontré la solución en el registro que precede al error que mencionaste.

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)

He seguido los consejos y el problema ha sido resuelto.

Krzysztof Dabrowski
fuente
0

Así es como se comportó cuando usé la propiedad estática de IWebDriver y la llamé desde múltiples métodos de prueba.

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

    ...
}

Me gusta

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

Solución

Para cada método de prueba de llamada, cree una nueva instancia de Driver

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

Actualice los frascos de selenio si nuestro script de selenio no se está ejecutando. Actualmente estoy usando selenium-java-2.43.0-srcs

Ahora está funcionando bien

swathi
fuente
0

Sucede en diferentes versiones de ff. Estoy usando la última versión 39 de ff usando selenium-server-standalone-2.41.0.jar y selenium-java-2.41.0.zip que muestra el mismo error.

Obtenga los últimos archivos jar de servidor y cliente aquí para la compatibilidad que utilicé las versiones de servidor y cliente 2.47.0 y 2.47.1 respectivamente. ¡Y bum! Funcionó.

AHashmi
fuente
0

Esto sucede debido a versiones anteriores. Simplemente actualice el navegador a la última versión y actualice el paquete de selenio webdriver a la última versión.

Prabu Ananthakrishnan
fuente
0

Simplemente reinicie la terminal. Terminal se cuelga nada más. Todo funcionará bien después de eso

Sachin Mour
fuente
0

Agregando a la base de conocimiento. Tuvimos el mismo problema con Bamboo. El problema se resolvió utilizando las Propiedades medioambientales en Bamboo.

DISPLAY=":1"

Agregar el valor como propiedades del sistema en pom.xml o la línea de comando no funcionó.

Piscina
fuente
0

En Windows: compruebe también la "bitness" de su Firefox. Firefox 43.0.1 64 bits no funciona con Selenium 2.50.0. Trabajando bien con Firefox 43.0.1 32bit ...

Ivan
fuente
0

Yo también estuve atrapado en este error durante tres días y finalmente lo descubrí. Puedes ver la respuesta que he dado aquí . Este es un problema de compatibilidad del navegador y el servidor de selenio. Espero que esto ayude. Puede verificar la compatibilidad del navegador desde este enlace

Sagar Chapagain
fuente
0

Tuve el mismo problema hoy. Para solucionarlo, bajé la versión 51 a 47 de Firefox y está funcionando.

Nota: Estoy usando un Linux Ubuntu Mate, en una Virtual Box, con el host como otro Ubuntu Mate. Todos los sistemas operativos son de 64 bits y Firefox también.

Topera
fuente
0

Instalé Firefox Setup 18.0.exe, me funciona

Enayath Ali
fuente
0

Tuve el mismo problema con Firefox 38.

Después de usar las siguientes dependencias de versión, pude resolver el problema.

    <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> 
Udara Seneviratne
fuente
0

Creo que esto podría ser un problema de visualización. Si no tiene GUI en el cuadro, iniciar Firefox desde selenium webdriver daría este error.

Para resolver esto, primero instale Xvfb [ yum install Xvfb -y] (un controlador de pantalla virtual) en el cuadro. Luego ejecuta tu prueba desde jenkins con xvfv-run -a -d <your test execution command>. Esto iniciará el navegador en un búfer de pantalla virtual. También es capaz de obtener capturas de pantalla con selenium webdriver.

Prasanta Biswas
fuente
-1

Solución

1) Actualice su servidor Selenium, es decir, selenium jar "selenium-server-standalone-2.xx.x.JAR" TO "selenium-server-standalone-2.45.0.JAR"

2) Actualice su controlador de cliente Selenium, es decir, la carpeta selenium libs "selenium-java-2.xx.x" TO "selenium-java-2.45.0"

3) Verifique e instale la versión compatible de Firefox

Consulte - Descargue las bibliotecas y jar selenium actualizadas, es decir, la versión 2.45.0

Esto RESOLVERÁ tu problema. ¡Saludos!

NarendraC
fuente