no se puede obtener una conexión estable de Firefox en 60 segundos (127.0.0.1:7055)

80

Obteniendo el siguiente error al ejecutar pruebas rspec

no se puede obtener una conexión estable de Firefox en 60 segundos (127.0.0.1:7055) en rieles

Utilizando la última versión de ruby ​​(1.9.2) y firefox (6.0)

Usando rspec-rails, capibara y varias otras gemas, pero no parecen ser un problema. Estas pruebas funcionan bien en otro entorno (linux).

Srini K
fuente

Respuestas:

99

[Actualización: esto puede (era para mí) seguir siendo una solución para este problema en 2015 | mdurrant |]

Me encontré con este problema últimamente .

Debe actualizar a capybara v1.0.1 para tener un controlador web de selenio correcto.

Para estar seguro agregué:

gem 'selenium-webdriver', '2.25.0'

en mi Gemfile.

Nota importante :
la selenium-webdrivergema se actualiza y se lanza una nueva versión para cada versión posterior de Firefox. Actualmente, 2.25.0se necesita una versión compatible con Firefox 15 .

apneadiving
fuente
11
De hecho, hice 'paquete de actualización de selenium-webdriver', pero de cualquier manera el objetivo es actualizar la gema selenium-webdriver a 2.5.0. Las pruebas funcionaron bien después de la actualización.
Srini K
acaba de hacer. Perdón por el retraso.
Srini K
1
tenía que hacer - gem 'selenium-webdriver', '> = 2.5.0' - para firefox 11. esto me consiguió la versión de gema 2.10 ...
ZX12R
7
Y se necesita selenium-webdriver 2.31.0 para Firefox 19. Parece que la respuesta siempre es, "obtén el último selenium-webdriver".
jwadsack
Siempre dejo el número de versión selenium-webdrivery lo hago bundle update selenium-webdrivercuando la versión necesita actualizarse.
Jason Swett
17

No pude hacer que funcione con Firefox 10 en Ubuntu. Cambiar a Chrome ayudó.

Instale el controlador de Chrome .

spec_helper.rb:

Capybara.register_driver :selenium_chrome do |app|   
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

En su especificación:

Capybara.current_driver = :selenium_chrome
... tests ...
Capybara.use_default_driver
Vincent
fuente
5
si está en una Mac, simplemente puedebrew install chromedriver
Will
Me funcionó, excepto que me gustó: Capybara.javascript_driver = :selenium_chrome(en lugar de configurarlo current_driver)
Tim Scott
¿Cambiar a Chrome te ayudó a establecer una conexión estable con Firefox? Fascinante. :)
D. Patrick
12

Para cualquiera que experimente esto con Firefox 12, el controlador web de selenio actual (2.21) no es compatible con FF12. La única solución que he encontrado es continuar usando Firefox es degradar Firefox, hasta que selenium-webdriver se actualice con el soporte FF12.

Esto se puede hacer usando el administrador de paquetes synaptic seleccionando el paquete de Firefox y haciendo clic en el menú Paquete> Forzar versión> seleccione una versión anterior. Luego aplique los cambios.

Si no tiene synaptic, puede instalarlo con apt-get install synaptic.

Actualización: la compatibilidad con Firefox 12 se agregó en la 2.22 y la compatibilidad con FF13 se agregó en la 2.23

mltsy
fuente
Muchas gracias, me salvó bastante tiempo.
Slotos
1
selenium-webdriver Funciona con FF12 para mí con 2.22.0.rc1
Gazler
10

Recibí este error porque las especificaciones se estaban ejecutando en un servidor sin cabeza. Esto significaba que no había ninguna pantalla para que el navegador renderizara.

Este artículo sugiere usar un servidor X virtual ( X Virtual Framebuffer ). Esto permite que el navegador se muestre en una pantalla virtual.

Instalar así:

sudo apt-get install xvfb
sudo apt-get install x11-xkb-utils
sudo apt-get install xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic

Luego, ejecute las especificaciones con el comando xvfb-runal frente.

xvfb-run bundle exec rake spec:features

Esta fue la respuesta SO que me llevó al artículo anterior. También ofrece un medio alternativo para utilizar Xvfb.

br3nt
fuente
1
su "xfonts-cyrillic", faltaba la última c
Federico Gaule Palombarani
3

* / var / lib / gems / 1.9.1 / gems / selenium-webdriver-2.35.1 / lib / selenium / webdriver / firefox / launcher.rb: 79: en `connect_until_stable ': no ​​se puede obtener una conexión estable de Firefox en 60 segundos (127.0.0.1:7055)(Selenium::WebDriver::Error::WebDriverError)*

Tuve el mismo problema, actualizar el selenium-webdriverno ayudó (ya era la versión más actual disponible).

Resulta que intenté ejecutar mi script desde una sesión SSH y $DISPLAYno estaba configurado.

El problema se solucionó con:

export DISPLAY=:0

antes de iniciar mi script Ruby desde la sesión SSH (úselo echo $DISPLAYen una terminal en la sesión X para averiguar qué necesita poner en esta variable).

pi3g.com
fuente
2
bundle update selenium-webdriver
rusllonrails
fuente
Más 1, en 2015 esta fue la solución más fácil para mí. No jugar con los números de versiones de codificación rígida.
Michael Durrant
1

Agregar la gema 'launchy' al Gemfile de mi aplicación funcionó con FF13.0, Capybara & Selenium v1.8.24.

mnoble01
fuente
1
Sospecho que si esto solucionó el problema, sería solo porque agregar launchy provocó que una versión posterior de capibara fuera incorporada (por ejemplo, como una dependencia).
Stefan Magnuson
0

Esto es solo una reiteración de lo que todos decían anteriormente. Verifiqué mi archivo de gemas y me aseguré de que 'selenium-webdriver' no tuviera ningún límite, luego ejecuté una 'actualización de paquete' y funcionó.

Estoy en ubuntux64 y windows 8 x64

Austio
fuente