Nu se poate obține o conexiune firefox stabilă în 60 de secunde (127.0.0.1:7055) (Programare, Ruby Pe Șine, Cucumber, Capybara, Selenium Webdriver, Rspec Rails)

Panjiyar Rahul a intrebat.

În timp ce testați scenariul prin cucumber primesc următoarea eroare la rularea rspec tests

imposibilitatea de a obține o conexiune stabilă la Firefox în 60 de secunde (127.0.0.0.1:7055) (Selenium::WebDriver::Error::WebDriverError)

Utilizarea ruby (1.9.2) selenium-webdriver (2.27.2) și firefox (19.0)

Utilizarea rspec-rails (2.12.1), , capybara (2.0.2) și alte câteva pietre prețioase, De asemenea, am adăugat launchy gem, dar acestea nu par să fie o problemă. Și folosesc Windows 7.

Comentarii

  • Arătați un caz de reproducere (dacă este mare, postați-l pe gist.github.com). –  > Por Andrei Botalov.
  • Tocmai am avut acest lucru care a început să se întâmple în weekend la testele anterior stabile și am făcut o actualizare a pachetului pentru a rezolva problema. –  > Por pschuegr.
  • Poate că schimbarea browserului implicit la versiunea suportabilă a Chrome pentru selenium-webdriver va rezolva această problemă sau nu? –  > Por Panjiyar Rahul.
  • Am postat cazul de reproducere aici. gist.github.com/4536512 –  > Por Panjiyar Rahul.
  • FWIW: gistul dvs. este o urmă de stivă, nu un caz de reproducere. –  > Por pje.
12 răspunsuri
mingePunctPenguin

Am avut aceeași problemă (pe Linux). S-a rezolvat cu:

gem update selenium-webdriver

Acum folosesc ruby 1.9.3-p286, selenium-webdriver 2.29.0, firefox 18.0Asemenea rspec-rails 2.9.0, capybara 1.1.2 și capybara-webkit 0.12.1.

Am adăugat selenium-webdriver 2.29.0 la Gemfile-ul meu pentru a fi în siguranță.

Comentarii

  • Mulțumesc!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Actualizarea selenium-webdriver a funcționat pentru mine pe Mac OS X 10.6.8/ruby 1.9.3-p194 –  > Por 7stud.
  • Funcționează în totalitate! Mulțumesc foarte mult. Folosesc selenium-webdriver 2.34.0 și firefox 19 (am făcut downgrade de la 23 la 19, nu am încercat pe FF 23) fără nicio eroare. –  > Por ersentekin.
  • Da, Firefox 22 în OS X doar stă acolo înainte ca, în cele din urmă, testul să se încheie cu acea eroare. –  > Por Sarah Vessels.
  • Iată versiunea în limba engleză pentru SUA a Firefox 19 pentru OS X: ftp.mozilla.org/pub/mozilla.org/firefox/releases/19.0/mac/en-US –  > Por Sarah Vessels.
  • Acesta nu ar trebui să fie răspunsul aprobat. stackoverflow.com/a/18263152/712188 este răspunsul mai corect. –  > Por Dean Galvin.
Mark Berry

Se pare că Selenium Webdriver primește actualizări frecvente pentru a ține pasul cu Firefox. Dar cum știți de ce versiune aveți nevoie? Să sperăm că această procedură va funcționa chiar dacă versiunile se schimbă:

  1. Mergeți la http://www.seleniumhq.org/download/.

  2. Derulați în jos până la Selenium Client &; WebDriver Language Bindings (Legături de limbă).

  3. În această secțiune, în secțiunea Ruby linie de limbă, faceți clic pe „Change Log” (link direct).

  4. În Change Log, determinați de ce versiune de Selenium aveți nevoie pentru versiunea dvs. de Firefox.

Dacă utilizați Bundler, rulați bundle show selenium-webdriver pentru a vedea ce versiune aveți. Pentru a actualiza, de exemplu, la 2.35.0, adăugați această linie la fișierul dvs. Gemfile:

gem 'selenium-webdriver', '2.35.0'

și apoi rulați bundle update pentru a instala. Dacă utilizați Spork, nu uitați să îl reporniți înainte de a relua testele.

ActualizațiUn răspuns de pe StackOverflow indică faptul că jurnalul de modificări poate fi actualizat mai repede în depozitul de cod sursă decât la seleniumhq.org. Registrul de modificări al depozitului pentru Ruby este aici: https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES.

Actualizarea Firefox

Dacă trebuie să faceți downgrade la Firefox pe Ubuntu 12.04, acest răspuns explică cum să reveniți la Firefox 20. O descriere mai generală a unei modalități de a trece la orice versiune de Firefox este oferită aici. Folosiți apoi acest răspuns pentru a pune în așteptare actualizările Firefox până când Selenium va lansa o actualizare care să funcționeze cu versiunea ulterioară de Firefox.

În cazul meu, am retrogradat Firefox doar pentru a descoperi că Selenium Webdriver a fost actualizat recent pentru a gestiona cea mai recentă versiune, așa că verificați mai întâi actualizările Selenium!

rusllonrails
bundle update selenium-webdriver

Matt Gibson

Tocmai am întâlnit acest lucru pe serverul CI și am descoperit că se datorează faptului că Firefox nu avea niciun afișaj de utilizat. Am crezut că selenium webdriver va face să funcționeze fără alte intervenții, dar nu a fost cazul.

Adăugarea Xvfb în amestec a făcut să funcționeze.

Pentru Rails care rulează caracteristici Cucumber:

gem 'headless'

apoi în features/support/env.rb

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

    headless = Headless.new
    headless.start
  end
end

Comentarii

  • Care este echivalentul în javascript al fișierului tău features/support/env.rb? –  > Por Scott Stensland.
  • Nu știu în mod specific, dar este un fișier care este inclus și rulat înainte de începerea tuturor testelor. –  > Por Matt Gibson.
pgerstoft

Această eroare apare atunci când versiunile selenium și firefox sunt incompatibile.

Există două opțiuni.

  1. Actualizați selenium:

    gem update selenium-webdriver

    Dacă tot nu reușește, înseamnă că selenium nu a fost actualizat la cea mai nouă versiune.

  2. Downgradează versiunea de firefox:

    sudo apt-get purge firefox

    Pentru a vedea pachetele disponibile pentru descărcareapt-cache showpkg firefox

    sudo apt-get install firefox=#older_version#

Shiprack

Combinația magică care a funcționat pentru mine a fost Firefox 19.0 și selenium web-driver 2.32.1 (cea mai recentă la momentul redactării acestui articol). Firefox 20.x și 21.x nu au funcționat. A trebuit să fac downgrade la Firefox. Rețineți, de asemenea, că (cel puțin pe Mac OS), dacă mergeți la FireFox Menu -> About Firefox, acesta se va actualiza automat la cea mai recentă versiune. Nu faceți asta.

orion

Dacă cele de mai sus nu funcționează acum, ca în cazul meu, încercați asta.

Primeam eroarea de time out pe un computer și nu pe altul. Ambele mașini sunt clienți subțiri care rulează exact aceleași versiuni ale tuturor componentelor. Astfel, am exclus versiunile incompatibile de Firefox (eroarea a apărut pe o mașină și nu pe cealaltă).

S-a dovedit că era o problemă cu portul pe care îl folosea Headless. Exista un alt proces care folosea acel port.

Ceea ce urmează a rezolvat problema pentru mine:
Adăugați următoarea linie în fișierul .zshenv
export XVFB_DISPLAY='new-port-number'
apoi executați comanda zsh în terminal pentru a seta modificarea

ttguy

Am avut această problemă atunci când am pornit irb dintr-un terminal în care am fost su ed mine însumi la un alt utilizator. Aș primi această eroare când am rulat irb ca acel utilizator. Dar nu și dacă am rulat ca root. Și nici când ieșeam înapoi într-un shell deținut de utilizatorul logat.

Alexander Williamson

În cazul meu, actualizasem deja gemele, dar apoi a trebuit să actualizez pachetul meu.

În powershell, navigați în directorul dvs. apoi actualizați pachetul:

cd D:ProjectsLazyAutomation
bundle update

Ben

pentru oricine folosește Vagrant, dacă vă conectați activând XServer firefox poate porni corect, ceea ce a rezolvat problema pentru mine. vagrant ssh — -X

juliangonzalez

Faceți un downgrade la Firefox.

Dacă utilizați deja gem 'headless' și actualizarea gemelor nu este de dorit ca deocamdată, atunci trebuie să faceți un downgrade la Firefox.

Pentru Ubuntu (dar și alte distribuții linux ar fi destul de asemănătoare) ar trebui:

Îndepărtați firefox care vine cu ultimele versiuni Ubuntu

sudo apt-get purge firefox

Puteți completa cu eliminarea unor date asociate, așa cum se explică aici

Acum, instalați o versiune mai veche de Firefox. Pentru mine, versiunea 42.0 a funcționat (deoarece Travis.ci al nostru o folosește)

$ 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

Deschideți o nouă filă de terminal și rulați cucumber specs/selenium specs.

Acum puteți descărca cea mai nouă versiune de Firefox și puteți crea un fișier .desktop fișier în /usr/share/applications/ pentru a-l accesa din dock. Și lăsați Selenium să găsească în mod implicit versiunea mai veche. Luați acest lucru ca referință

7stud

După ce am urmat sugestia lui ballPointPenguin, acum pot folosi watir-webdriver pentru a prelua fișiere locale, sau fișiere din directorul htdocs al instalației mele locale apache, sau fișiere de pe web:

1) file:///Users/me/jquery_programs/1.htm
2) 'http://localhost:8080/my.html'
3) 'http://www.google.com'

require 'watir-webdriver'

browser = Watir::Browser.new :firefox
browser.goto 'http://localhost:8080/my.html'

Înainte de actualizare, primeam eroarea:

`connect_until_stable’: imposibilitatea de a obține o conexiune stabilă la Firefox în 60 de secunde (127.0.0.1:7055) (Selenium::WebDriver::Error::WebDriverError).

Comentarii

  • Acesta nu este un răspuns la această întrebare. –  > Por Cheng.