nie można uzyskać stabilnego połączenia z programem Firefox w ciągu 60 sekund (127.0.0.1:7055)

80

Podczas uruchamiania testów rspec pojawia się następujący błąd

nie można uzyskać stabilnego połączenia firefox w ciągu 60 sekund (127.0.0.1:7055) na railsach

Korzystanie z najnowszego Ruby (1.9.2) i Firefox (6.0)

Używanie rspec-rails, kapibary i kilku innych klejnotów, ale nie wydaje się to stanowić problemu. Testy te działają dobrze w innym środowisku (Linux).

Srini K.
źródło

Odpowiedzi:

99

[Aktualizacja - to może (było dla mnie) nadal naprawić ten problem w 2015 r. | Mdurrant |]

Ostatnio natknąłem się na ten problem .

Aby mieć poprawny webdriver selenu, należy dokonać aktualizacji do wersji 1.0.1 kapibary.

Dla pewności dodałem:

gem 'selenium-webdriver', '2.25.0'

w moim Gemfile.

Ważna uwaga : gem jest aktualizowany, a nowa wersja wydana, dla każdej kolejnej wersji Firefoksa. Obecnie potrzebna jest wersja do obsługi przeglądarki Firefox 15 .
selenium-webdriver2.25.0

bezdechu
źródło
11
Właściwie zrobiłem „aktualizację pakietu selenium-webdriver”, ale tak czy inaczej celem jest aktualizacja gem selenu-webdriver do 2.5.0. Po aktualizacji testy przebiegły pomyślnie.
Srini K
właśnie to zrobiłem. przepraszam za opóźnienie.
Srini K
1
musiałem zrobić - gem 'selenium-webdriver', '> = 2.5.0' - dla firefox 11. to
dało
7
I selenium-webdriver 2.31.0 jest potrzebny dla Firefoksa 19. Wydaje się, że odpowiedź zawsze brzmi: „pobierz najnowszy selenium-webdriver”.
jwadsack
Zawsze po prostu zostawiam wyłączony numer wersji selenium-webdriveri robię to, bundle update selenium-webdrivergdy wersja wymaga aktualizacji.
Jason Swett
17

Nie mogłem go zmusić do pracy z Firefoksem 10 na Ubuntu. Pomogło przejście na Chrome.

Zainstaluj sterownik Chrome .

spec_helper.rb:

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

W twojej specyfikacji:

Capybara.current_driver = :selenium_chrome
... tests ...
Capybara.use_default_driver
Vincent
źródło
5
jeśli masz Maca, możesz po prostubrew install chromedriver
Will
Pracował dla mnie, z wyjątkiem tego, że tak: Capybara.javascript_driver = :selenium_chrome(zamiast ustawienia current_driver.)
Tim Scott
Przejście na Chrome pomogło Ci nawiązać stabilne połączenie z Firefoksem? Fascynujący. :)
D. Patrick
12

Dla każdego, kto doświadcza tego w Firefoksie 12, obecny webdriver selenu (2.21) nie obsługuje FF12. Jedynym rozwiązaniem, jakie znalazłem, jest kontynuowanie korzystania z Firefoksa, to obniżenie wersji Firefoksa, dopóki selenium-webdriver nie zostanie zaktualizowany o obsługę FF12.

Można to zrobić za pomocą menedżera pakietów synaptic, wybierając pakiet Firefox i klikając menu Pakiet> Wymuś wersję> wybierz wcześniejszą wersję. Następnie zastosuj zmiany.

Jeśli nie masz synaptic, możesz zainstalować go za pomocą apt-get install synaptic.

Aktualizacja: obsługa przeglądarki Firefox 12 została dodana w wersji 2.22, a obsługa FF13 została dodana w wersji 2.23

mltsy
źródło
Wielkie dzięki, zaoszczędziłem sporo czasu.
Slotos
1
selenium-webdriver Działa z FF12 dla mnie z 2.22.0.rc1
Gazler
10

Otrzymałem ten błąd, ponieważ specyfikacje były uruchamiane na serwerze bezgłowym. Oznaczało to, że przeglądarka nie wyświetlała się.

Ten artykuł sugeruje użycie wirtualnego serwera X ( X Virtual Framebuffer ). Umożliwia to przeglądarce renderowanie na wyświetlaczu wirtualnym.

Zainstaluj tak:

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

Następnie uruchom specyfikacje z poleceniem xvfb-runna początku.

xvfb-run bundle exec rake spec:features

To była odpowiedź TAK, która doprowadziła mnie do powyższego artykułu. Daje również alternatywne sposoby korzystania z Xvfb.

br3nt
źródło
1
jego "xfonts-cyrillic", brakowało ostatniego c
Federico Gaule Palombarani
3

* / var / lib / gems / 1.9.1 / gems / selenium-webdriver-2.35.1 / lib / selenium / webdriver / firefox / launcher.rb: 79: w `connect_until_stable ': nie można uzyskać stabilnego połączenia Firefox w ciągu 60 sekund (127.0.0.1:7055)(Selenium::WebDriver::Error::WebDriverError)*

Miałem ten sam problem, aktualizacja selenium-webdrivernie pomogła (była to najnowsza dostępna już wersja).

Okazuje się, że próbowałem uruchomić mój skrypt z sesji SSH i $DISPLAYnie został ustawiony.

Problem został rozwiązany:

export DISPLAY=:0

przed uruchomieniem mojego skryptu Ruby z sesji SSH (użyj echo $DISPLAYw terminalu w sesji X, aby dowiedzieć się, co musisz umieścić w tej zmiennej).

pi3g.com
źródło
2
bundle update selenium-webdriver
rusllonrails
źródło
Plus 1, w 2015 roku było to dla mnie najłatwiejsze rozwiązanie. Żadnego bałaganu z numerami wersji kodowania.
Michael Durrant
1

Dodanie klejnotu „launchy” do pliku Gemfile mojej aplikacji działało z FF13.0, Capybara i Selenium v1.8.24.

mnoble01
źródło
1
Podejrzewam, że gdyby to rozwiązało problem, to tylko dlatego, że dodanie launchy spowodowało wciągnięcie późniejszej wersji kapibary (np. Jako zależność).
Stefan Magnuson
0

To tylko powtórzenie tego, co wszyscy mówili powyżej. Sprawdziłem mój plik gemfile i upewniłem się, że `` selenium-webdriver '' nie ma żadnych ograniczeń, a następnie uruchomiłem `` aktualizację pakietu '' i zadziałało.

Jestem na Ubuntux64 i Windows 8 x64

Austio
źródło