Obtention de l'erreur suivante lors de l'exécution des tests rspec
impossible d'obtenir une connexion firefox stable en 60 secondes (127.0.0.1:7055) dans Rails
Utilisation des derniers Ruby (1.9.2) et firefox (6.0)
Utiliser rspec-Rails, capybara et plusieurs autres gemmes, mais cela ne semble pas être un problème. Ces tests fonctionnent bien dans un autre environnement (Linux).
[Mise à jour - cela peut (était pour moi) toujours un correctif pour ce problème dans 2015 | mdurrant |]
Je suis tombé sur ce problème récemment .
Vous devez mettre à niveau vers capybara v1.0.1 pour avoir un pilote Web Selenium correct.
Pour être sûr, j'ai ajouté:
gem 'Selenium-webdriver', '2.25.0'
dans mon Gemfile.
Remarque importante :
Le Selenium-webdriver
gem est mis à jour et une nouvelle version est publiée pour chaque version ultérieure de Firefox. Actuellement, la version 2.25.0
est nécessaire pour prendre en charge Firefox 15 .
Je n'ai pas pu le faire fonctionner avec Firefox 10 sur Ubuntu. Passer à Chrome a aidé.
Installer pilote Chrome .
spec_helper.rb:
Capybara.register_driver :Selenium_chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Dans vos spécifications:
Capybara.current_driver = :Selenium_chrome
... tests ...
Capybara.use_default_driver
Pour quiconque éprouve cela avec Firefox 12, le pilote Web actuel Selenium (2.21) ne prend pas en charge FF12. La seule solution que j'ai trouvée est de continuer à utiliser Firefox est de rétrograder Firefox, jusqu'à ce que Selenium-webdriver soit mis à jour avec le support FF12.
Pour ce faire, utilisez le gestionnaire de packages synaptiques en sélectionnant le package Firefox, puis en cliquant sur le menu Package> Forcer la version> sélectionner une version antérieure. Appliquez ensuite les modifications.
Si vous n'avez pas de synaptique, vous pouvez l'installer avec apt-get install synaptic.
Mise à jour: le support de Firefox 12 a été ajouté en 2.22 et le support FF13 a été ajouté en 2.2
J'obtenais cette erreur parce que les spécifications étaient exécutées sur un serveur sans tête. Cela signifiait qu'il n'y avait pas d'affichage sur lequel le navigateur pouvait s'afficher.
Cet article suggère d'utiliser un serveur X virtuel ( X Virtual Framebuffer ). Cela permet au navigateur de s'afficher dans un affichage virtuel.
Installez comme ceci:
Sudo apt-get install xvfb
Sudo apt-get install x11-xkb-utils
Sudo apt-get install xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic
Exécutez ensuite les spécifications avec la commande xvfb-run
devant.
xvfb-run bundle exec rake spec:features
Ce fut la SO réponse qui m'a conduit à l'article ci-dessus. Il donne également un autre moyen d'utiliser Xvfb.
*/var/lib/gems/1.9.1/gems/Selenium-webdriver-2.35.1/lib/Selenium/webdriver/firefox/launcher.rb: 79: dans `connect_until_stable ': impossible d'obtenir une connexion firefox stable en 60 secondes (127.0.0.1:7055)(Selenium::WebDriver::Error::WebDriverError)*
J'ai eu le même problème en mettant à jour le Selenium-webdriver
n'a pas aidé (c'était la version la plus récente disponible déjà).
Il s'avère que j'ai essayé d'exécuter mon script à partir d'une session SSH, et $DISPLAY
n'était pas défini.
Le problème a été résolu avec:
export DISPLAY=:0
avant de démarrer mon Ruby script de la session SSH (utilisez echo $DISPLAY
dans un terminal sur la session X pour savoir ce que vous devez mettre dans cette variable).
bundle update Selenium-webdriver
L'ajout de la gemme de lancement au Gemfile de mon application a fonctionné avec FF13.0, Capybara et Selenium v1.8.24.
Ce n'est qu'une réitération de ce que tout le monde disait ci-dessus. J'ai vérifié mon fichier de gemmes et je me suis assuré que le 'Selenium-webdriver' n'avait pas de limites dessus, puis j'ai exécuté une 'mise à jour de bundle' et cela a fonctionné.
Je suis sur Ubuntux64 et Windows 8 x64