Beim Testen des Szenarios von cucumber
wird beim Ausführen von rspec
Tests der folgende Fehler angezeigt
In 60 Sekunden kann keine stabile Firefox-Verbindung hergestellt werden (127.0.0.1:7055) (Selenium :: WebDriver :: Error :: WebDriverError)
Verwenden von ruby (1.9.2)
selenium-webdriver (2.27.2)
undfirefox (19.0)
Unter Verwendung rspec-rails (2.12.1)
, capybara (2.0.2)
und einige andere Edelsteine, habe ich auch hinzugefügt launchy
Juwel , aber sie scheinen nicht ein Problem zu sein. Und ich benutze Windows 7
.
ruby-on-rails
cucumber
capybara
selenium-webdriver
rspec-rails
Panjiyar Rahul
quelle
quelle
Antworten:
Ich hatte das gleiche Problem (unter Linux). Behoben mit:
gem update selenium-webdriver
Jetzt verwende ich Ruby 1.9.3-p286, Selen-Webdriver 2.29.0, Firefox 18.0 sowie Rspec-Rails 2.9.0, Capybara 1.1.2 und Capybara-Webkit 0.12.1
Ich habe Selenium-Webdriver 2.29.0 aus Sicherheitsgründen zu meiner Gemfile hinzugefügt.
quelle
Es scheint, dass Selenium Webdriver regelmäßig aktualisiert wird, um mit Firefox Schritt zu halten. Aber woher weißt du, welche Version du brauchst? Hoffentlich funktioniert dieses Verfahren auch, wenn sich die Versionen ändern:
Gehen Sie zu http://www.seleniumhq.org/download/ .
Scrollen Sie nach unten zu Selenium Client & WebDriver Language Bindings .
Klicken Sie in diesem Abschnitt in der Ruby- Sprachzeile auf "Änderungsprotokoll" ( direkter Link ).
Bestimmen Sie im Änderungsprotokoll, welche Version von Selen Sie für Ihre Version von Firefox benötigen.
Wenn Sie Bundler verwenden, führen Sie aus, um festzustellen,
bundle show selenium-webdriver
welche Version Sie haben. Um beispielsweise auf 2.35.0 zu aktualisieren, fügen Sie diese Zeile zuGemfile
:gem 'selenium-webdriver', '2.35.0'
und dann ausführen
bundle update
, um zu installieren. Wenn Sie Spork verwenden, denken Sie daran, es neu zu starten, bevor Sie Ihre Tests erneut ausführen.Update One StackOverflow-Antwort zeigt an, dass das Änderungsprotokoll im Quellcode-Repository möglicherweise früher aktualisiert wird als auf seleniumhq.org. Das Repository-Änderungsprotokoll für Ruby finden Sie hier: https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES .
Firefox herabstufen
Wenn Sie Firefox unter Ubuntu 12.04 herunterstufen müssen, wird in dieser Antwort erläutert, wie Sie zu Firefox 20 zurückkehren. Eine allgemeinere Beschreibung der Möglichkeit, zu einer beliebigen Version von Firefox zu wechseln, finden Sie hier . Verwenden Sie diese Antwort , um Firefox-Updates anzuhalten, bis Selenium ein Update veröffentlicht, das mit der späteren Version von Firefox funktioniert.
In meinem Fall habe ich Firefox nur herabgestuft, um festzustellen, dass Selenium Webdriver kürzlich aktualisiert wurde, um die neueste Version zu verarbeiten. Suchen Sie also zuerst nach Selenium-Updates!
quelle
bundle update selenium-webdriver
quelle
Ich bin gerade auf dem CI-Server darauf gestoßen und habe festgestellt, dass Firefox kein Display zur Verwendung hatte. Ich hatte gedacht, dass der Selen-Webdriver ohne weitere Eingriffe funktionieren würde, aber das war nicht der Fall.
Durch Hinzufügen von Xvfb zum Mix hat es funktioniert.
Für Schienen mit Gurkenfunktionen:
gem 'headless'
dann in features / support / env.rb.
Before do if Capybara.current_driver == :selenium require 'headless' headless = Headless.new headless.start end end
quelle
Dieser Fehler tritt auf, wenn Selen- und Firefox-Versionen nicht kompatibel sind.
Es gibt zwei Möglichkeiten.
Selen aktualisieren:
gem update selenium-webdriver
Wenn dies immer noch fehlschlägt, wurde Selen nicht auf die neueste Version aktualisiert.
Downgrade der Version von Firefox:
sudo apt-get purge firefox
Um die verfügbaren Pakete zum Download anzuzeigen
apt-cache showpkg firefox
sudo apt-get install firefox=#older_version#
quelle
Die magische Kombination, die für mich funktioniert hat, war Firefox 19.0 und Selen-Web-Treiber 2.32.1 (spätestens zum Zeitpunkt des Schreibens). Firefox 20.x und 21.x haben nicht funktioniert. Ich musste Firefox herabstufen. Beachten Sie auch, dass (zumindest unter Mac OS) beim Aufrufen von FireFox Menu -> About Firefox automatisch ein Upgrade auf die neueste Version durchgeführt wird. Tu das nicht.
quelle
Wenn das oben genannte jetzt funktioniert, wie in meinem Fall, probieren Sie es aus.
Ich habe den Timeout-Fehler auf einer Maschine und nicht auf einer anderen erhalten. Beide Maschinen sind Thin Clients, auf denen genau die gleichen Versionen von allem ausgeführt werden. Das schloss also inkompatible Firefox-Versionen aus (Fehler trat auf einem Computer auf und nicht auf dem anderen)
Es stellte sich heraus, dass es ein Problem mit dem von Headless verwendeten Port gab. Es gab einen anderen Prozess, der diesen Port verwendete.
Das Folgende hat das Problem für mich behoben:
Fügen Sie die folgende Zeile in die .zshenv- Datei ein
export XVFB_DISPLAY='new-port-number'
und führen Sie den Befehl
zsh
im Terminal aus, um die Änderung festzulegenquelle
Ich hatte dieses Problem, als ich irb von einem Terminal aus startete, an dem ich mich bei einem anderen Benutzer verklagt hatte. Ich würde diesen Fehler erhalten, wenn ich irb als dieser Benutzer ausführen würde. Aber nicht, wenn ich als root lief. Und nicht, wenn ich zu einer Shell zurückgekehrt bin, die dem angemeldeten Benutzer gehört.
quelle
Für mich hatte ich die Edelsteine bereits aktualisiert, musste dann aber mein Bundle aktualisieren.
Navigieren Sie in Powershell zu Ihrem Verzeichnis und aktualisieren Sie das Bundle:
cd D:\Projects\LazyAutomation bundle update
quelle
Wenn Sie sich für Vagrant anmelden und XServer aktivieren, kann Firefox korrekt gestartet werden, was das Problem für mich gelöst hat. Vagabund ssh - -X
quelle
Downgrade von Firefox.
Wenn es
gem 'headless'
derzeit nicht wünschenswert ist, Edelsteine bereits zu verwenden und zu aktualisieren, müssen Sie Firefox herunterstufen.Für Ubuntu (aber andere Linux-Distributionen wären ziemlich ähnlich) sollten Sie:
Entfernen Sie Firefox, das mit den neuesten Ubuntu-Versionen geliefert wird
sudo apt-get purge firefox
Sie können das Entfernen einiger zugehöriger Daten ergänzen, wie hier erläutert
Installieren Sie jetzt eine ältere Version von Firefox. Für mich hat Version 42.0 funktioniert (wie unsere Travis.ci es verwendet)
$ 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
Öffnen Sie eine neue Terminalregisterkarte und führen Sie Ihre Gurkenspezifikationen / Selenspezifikationen aus.
Sie können jetzt die neueste Version von Firefox herunterladen und eine
.desktop
Datei erstellen/usr/share/applications/
, um vom Dock aus darauf zuzugreifen. Und lassen Sie Selen standardmäßig die ältere Version finden. Nehmen Sie dies als Referenzquelle
Nachdem ich dem Vorschlag von ballPointPenguin gefolgt bin, kann ich jetzt mit watir-webdriver lokale Dateien oder Dateien im htdocs-Verzeichnis meiner lokalen Apache-Installation oder Dateien im Web abrufen:
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'
Vor dem Update wurde folgende Fehlermeldung angezeigt:
quelle