web-dev-qa-db-fra.com

Impossible d'obtenir une connexion firefox stable en 60 secondes (127.0.0.1:7055)

Lors du test du scénario par cucumber, l'erreur suivante s'affiche lors de l'exécution des tests rspec

impossible d'obtenir une connexion firefox stable en 60 secondes (127.0.0.1:7055) (Selenium :: WebDriver :: Error :: WebDriverError)

Utilisation de Ruby (1.9.2)Selenium-webdriver (2.27.2) et de firefox (19.0)

En utilisant rspec-Rails (2.12.1), capybara (2.0.2) et plusieurs autres gemmes, j'ai également ajouté une gemme launchy mais ils ne semblent pas poser de problème. Et j'utilise Windows 7.

74
Panjiyar Rahul

J'ai eu le même problème (sous Linux). Fixé avec:

gem update Selenium-webdriver

Maintenant, j'utilise Ruby 1.9.3-p286, Selenium-webdriver 2.29.0, firefox 18.0 Ainsi que rspec-Rails 2.9.0, capybara 1.1.2 et capybara-webkit 0.12.1

J'ai ajouté Selenium-webdriver 2.29.0 à mon fichier Gemfile pour plus de sécurité.

87
ballPointPenguin

Il semble que Selenium Webdriver reçoive de fréquentes mises à jour pour suivre Firefox. Mais comment savoir de quelle version vous avez besoin? Espérons que cette procédure fonctionnera même si les versions changent:

  1. Allez à http://www.seleniumhq.org/download/

  2. Faites défiler jusqu'à Selenium Client & WebDriver Liaisons de langue

  3. Dans cette section, dans la ligne de langue Ruby, cliquez sur "Modifier le journal" ( lien direct ).

  4. Dans le journal des modifications, déterminez la version de Selenium dont vous avez besoin pour votre version de Firefox.

Si vous utilisez Bundler, exécutez bundle show Selenium-webdriver pour voir quelle version vous avez. Pour mettre à jour, par exemple vers 2.35.0, ajoutez cette ligne à votre Gemfile:

gem 'Selenium-webdriver', '2.35.0'

puis exécutez bundle update pour installer. Si vous utilisez Spork, n'oubliez pas de le redémarrer avant de relancer vos tests.

Update One StackOverflow answer indique que le journal des modifications peut être mis à jour plus tôt dans le référentiel de code source qu'à seleniumhq.org. Le journal des modifications du référentiel de Ruby se trouve ici: https://github.com/SeleniumHQ/Selenium/blob/master/rb/CHANGES .

Rétrogradation de Firefox

Si vous devez rétrograder Firefox sous Ubuntu 12.04, cette réponse explique comment revenir à Firefox 20. Une description plus générale d'un moyen de passer à n'importe quelle version de Firefox est donnée ici . Utilisez ensuite cette réponse pour mettre les mises à jour de Firefox en attente jusqu'à ce que Selenium publie une mise à jour qui fonctionne avec la version ultérieure de Firefox.

Dans mon cas, j'ai rétrogradé Firefox uniquement pour découvrir que Selenium Webdriver avait récemment été mis à jour pour prendre en charge la dernière version. Vérifiez donc les mises à jour pour Selenium!

46
Mark Berry
bundle update Selenium-webdriver
10
rusllonrails

Je viens de rencontrer ceci sur le serveur CI et j'ai découvert que c'était parce que Firefox n'avait pas d'affichage à utiliser. J'avais pensé que Selenium WebDriver le ferait sans autre intervention, mais ce n'était pas le cas.

L'ajout de Xvfb dans le mix a permis de faire fonctionner le logiciel. 

Pour les rails utilisant Cucumber:

gem 'headless'

puis dans features/support/env.rb

Before do
  if Capybara.current_driver == :Selenium
    require 'headless'

    headless = Headless.new
    headless.start
  end
end
9
Matt Gibson

Cette erreur se produit lorsque les versions de Selenium et de Firefox sont incompatibles.

Il y a deux options.

  1. Mettre à jour le sélénium:

    gem update Selenium-webdriver

    Si cela échoue toujours, Selenium n’a pas été mis à jour avec la dernière version.

  2. Rétrograder la version de Firefox:

    Sudo apt-get purge firefox

    Pour voir les packages disponibles au téléchargement apt-cache showpkg firefox

    Sudo apt-get install firefox=#older_version#

3
pgerstoft

La combinaison magique qui a fonctionné pour moi était Firefox 19.0 et le pilote Web Selenium 2.32.1 (au moment de la rédaction de cet article). Firefox 20.x et 21.x ne fonctionnaient pas. Je devais déclasser Firefox. N'oubliez pas non plus que (du moins sous Mac OS), si vous accédez au menu FireFox -> À propos de Firefox, la mise à niveau vers la dernière version est automatiquement effectuée. Ne fais pas ça.

1
Shiprack

Si ce qui précède fonctionne maintenant, comme dans mon cas, essayez-le.

Je recevais l'erreur de time out sur une machine et pas une autre. Les deux machines sont des clients légers exécutant exactement les mêmes versions de tout. Donc, cela a exclu les versions firefox incompatibles (une erreur est survenue sur une machine et non sur l'autre)

Il s'est avéré qu'il y avait un problème avec le port que sans tête utilisait. Il y avait un autre processus utilisant ce port. 

Le ci-dessous corrigé le problème pour moi:
Ajoutez la ligne suivante dans le fichier .zshenv
export XVFB_DISPLAY='new-port-number'
puis exécutez la commande zsh dans le terminal pour définir le changement

1
orion

Pour moi, j'avais déjà mis à jour les gemmes, mais j'avais ensuite besoin de mettre à jour mon forfait. 

Dans PowerShell, accédez à votre répertoire, puis mettez à jour le paquet:

cd D:\Projects\LazyAutomation
bundle update
0

J'ai eu ce problème quand je commençais irb depuis un terminal où je m'étais assigné à un autre utilisateur. Je voudrais obtenir cette erreur lorsque j'ai couru irb en tant que cet utilisateur. Mais pas si je courais en tant que root. Et pas lorsque je suis revenu sur un shell appartenant à l'utilisateur connecté. 

0
ttguy

Rétrograder Firefox.

Si déjà utiliser gem 'headless' et mettre à jour des gems n'est pas souhaitable pour le moment, vous devez rétrograder Firefox.

Pour Ubuntu (mais les autres distributions Linux seraient assez similaires), vous devriez:

Supprimez Firefox fourni avec les dernières versions d'Ubuntu.

Sudo apt-get purge firefox

Vous pouvez compléter en supprimant certaines données associées comme expliqué ici

Maintenant, installez une ancienne version de Firefox. Pour moi, la version 42.0 travaillé (comme notre Travis.ci l'utilise) 

$ export FIREFOX_SOURCE_URL='https://download.mozilla.org/?product=firefox-42.0&lang=en-US&os=linux64'
$ wget --no-verbose -O /tmp/firefox-42.0.tar.bz2 $FIREFOX_SOURCE_URL
$ tar xvC ~/. -f /tmp/firefox-42.0.tar.bz2
ln -s ~/firefox/firefox ~/bin/firefox

Ouvrez un nouvel onglet de terminal et lancez vos spécifications de concombre/spécifications de sélénium.

Vous pouvez maintenant télécharger la dernière version de Firefox et créer un fichier .desktop dans /usr/share/applications/ pour y accéder à partir du dock. Et laissez Selenium trouver par défaut l'ancienne version. Prenez ceci pour référence

0
juliangonzalez

pour ceux qui utilisent Vagrant, si vous vous connectez en activant XServer, firefox peut démarrer correctement, ce qui me l'a résolu. shant vagabond - -X

0
Ben