Bei der Verwendung von Firefox mit WebDriver wird eine Fehlermeldung angezeigt.
org.openqa.selenium.firefox.NotConnectedException: Unable to connect
to host 127.0.0.1 on port 7055 after 45000 ms.
- Firefox-Version: 47.0
- Selen: 2,53,0
- Windows 10 64 Bit
Bekommt jemand ein ähnliches Problem oder eine Idee, was die Lösung dafür ist? Es funktioniert gut mit Chrome, aber mit Firefox wird keine der URLs geladen.
Antworten:
Leider ist Selenium WebDriver 2.53.0 nicht mit Firefox 47.0 kompatibel. Die WebDriver-Komponente, die Firefox-Browser (
FirefoxDriver
) verarbeitet, wird eingestellt. Ab Version 3.0 benötigt Selenium WebDriver diegeckodriver
Binärdatei, um Firefox-Browser zu verwalten. Mehr Infos hier und hier .Um Firefox 47.0 als Browser mit Selenium WebDriver 2.53.0 zu verwenden, müssen Sie daher den Firefox-Treiber (eine Binärdatei, die
geckodriver
ab Version 0.8.0 aufgerufen wurde) herunterladenwires
und seinen absoluten Pfad in die Variablewebdriver.gecko.driver
als exportieren eine Systemeigenschaft in Ihrem Java-Code:Glücklicherweise kann die Bibliothek WebDriverManager diese Arbeit für Sie erledigen, dh die richtige Marionetten-Binärdatei für Ihren Computer (Linux, Mac oder Windows) herunterladen und den Wert der richtigen Systemeigenschaft exportieren. Um diese Bibliothek verwenden zu können, müssen Sie diese Abhängigkeit in Ihr Projekt aufnehmen:
... und führen Sie diese Zeile in Ihrem Programm aus, bevor Sie WebDriver verwenden:
Ein vollständiges Beispiel für einen JUnit 4-Testfall mit WebDriver könnte folgendermaßen aussehen:
Berücksichtigen Sie, dass Marionette die einzige Option für die Zukunft sein wird (für WebDriver 3+ und Firefox 48+), aber derzeit (Version 0.9.0 zum Zeitpunkt des Schreibens) nicht sehr stabil ist. Schauen Sie sich das anWeitere Informationen finden Marionetten-Roadmap .
AKTUALISIEREN
Selenium WebDriver 2.53.1 wurde am 30. Juni 2016 veröffentlicht. Es
FirefoxDriver
funktioniert wieder mit Firefox 47.0.1 als Browser.quelle
C:\Windows\system32>netstat -ano | find "7055" TCP 127.0.0.1:2896 127.0.0.1:7055 SYN_SENT 2052
Versuchen Sie es mit Firefox 46.0.1. Es passt am besten zu Selen 2.53
quelle
Ich hatte das gleiche Problem und fand heraus, dass Sie die Treiber wechseln müssen, da die Unterstützung eingestellt wurde . Anstatt den Firefox-Treiber zu verwenden , müssen Sie die Marionette verwenden Treiber verwenden, um Ihre Tests auszuführen. Ich arbeite gerade selbst am Setup und kann einige vorgeschlagene Schritte veröffentlichen, wenn Sie möchten, wenn ich ein funktionierendes Beispiel habe.
Hier sind die Schritte, die ich ausgeführt habe, um dies in meiner Java-Umgebung auf dem Mac zum Laufen zu bringen (funktionierte auch in meinen Linux-Installationen (Fedora, CentOS und Ubuntu)):
mkdir -p /opt/marionette
)$PATH
, um die ausführbare Datei einzuschließen (bearbeiten Sie auch Ihre.bash_profile
wenn Sie möchten)chmod +x /opt/marionette/wires-x.x.x
, dass es ausführbar istSchnelle Notiz
Funktioniert immer noch nicht wie erwartet, aber zumindest wird der Browser jetzt gestartet. Ich muss herausfinden, warum - im Moment muss ich meine Tests neu schreiben, damit sie funktionieren.
Java-Snippet
quelle
Wenn Sie mit Homebrew unter OSX arbeiten, können Sie alte Firefox-Versionen über das Brühfass installieren:
Nach der Installation müssen Sie nur Ihre ausführbare FF-Datei im Anwendungsverzeichnis in "Firefox" umbenennen.
Weitere Infos finden Sie im Git Repo Homebrew-Firefox . Requisiten an smclernon für die Erstellung des Originalfasses .
quelle
Wenn Sie auf einem Mac sind
brew install geckodriver
, können Sie loslegen!quelle
Für den Fall, dass sich jemand fragt, wie Marionette in C # verwendet werden soll.
Überschreiben von FirefoxOptions, um die Funktion zum Hinzufügen zusätzlicher Funktionen und zum Festlegen des Firefox-Profils bereitzustellen, da Selenium v53 diese Funktion noch nicht bietet.
Hinweis: Das Starten mit Profil funktioniert nicht mit FF 47, sondern mit FF 50 Nightly.
Wir haben jedoch versucht, unseren Test auf Marionette umzustellen, und dies ist derzeit einfach nicht möglich, da die Implementierung des Treibers entweder nicht abgeschlossen oder fehlerhaft ist. Ich würde vorschlagen, dass Leute ihren Firefox in diesem Moment herabstufen.
quelle
Neue Selenium-Bibliotheken sind jetzt erhältlich, laut: https://github.com/SeleniumHQ/selenium/issues/2110
Die Download-Seite http://www.seleniumhq.org/download/ scheint noch nicht aktualisiert zu sein, aber durch Hinzufügen von 1 zur Nebenversion im Link konnte ich die C # -Version herunterladen: http: // selenium-release. storage.googleapis.com/2.53/selenium-dotnet-2.53.1.zip
Es funktioniert bei mir mit Firefox 47.0.1.
Als Randnotiz konnte ich nur die Firefox-Erweiterung webdriver.xpi aus dem Hauptzweig in GitHub erstellen , indem ich sie ausführte
./go //javascript/firefox-driver:webdriver:run
- was eine Fehlermeldung ergab, aber die Datei build / javascript / Firefox-Treiber / webdriver.xpi erstellte, die ich könnte umbenennen (um einen Namenskonflikt zu vermeiden) und erfolgreich mit der FirefoxProfile.AddExtension-Methode laden. Dies war eine vernünftige Problemumgehung, ohne dass die gesamte Selenium-Bibliothek neu erstellt werden musste.quelle
Es ist eine FF47-Ausgabe https://github.com/SeleniumHQ/selenium/issues/2110
Bitte downgraden Sie auf FF 46 oder niedriger (oder probieren Sie den FF48-Entwickler https://developer.mozilla.org/en-US/Firefox/Releases/48 aus )
Anweisungen zum Downgrade: https://www.liberiangeek.net/2012/04/how-to-install-previous-versions-of-firefox-in-ubuntu-12-04-precise-pangolin/ Oder wenn Sie es sind Verwenden Sie auf dem Mac, wie von einer anderen Person in diesem Thread vorgeschlagen, Brew.
quelle
Firefox 47.0 funktioniert nicht mehr mit Webdriver.
Am einfachsten ist es, auf Firefox 47.0.1 und Webdriver 2.53.1 zu wechseln. Diese Kombination funktioniert wieder. Laut https://www.mozilla.org/en-US/firefox/47.0.1/releasenotes/ war die Wiederherstellung der Webdriver-Kompatibilität der Hauptgrund für die Version 47.0.1 .
quelle
Sie können versuchen, diesen Code zu verwenden.
Ich habe ein Upgrade auf Selen 3.0.0 durchgeführt und die Firefox-Version ist 49.0.1
Sie können geckodriver.exe von https://github.com/mozilla/geckodriver/releases herunterladen
Stellen Sie sicher, dass Sie nur die Zip-Datei, die geckodriver-v0.11.1-win64.zip-Datei oder die win32-Datei gemäß Ihrem System herunterladen und in einen Ordner extrahieren.
Fügen Sie den Pfad für diesen Ordner in die Anführungszeichen "Ihr Pfad zum Treiber" ein. Vergessen Sie nicht, geckodriver.exe in den Pfad einzufügen.
quelle
Ich habe schließlich eine zusätzliche alte Version von Firefox installiert (die nur zum Testen verwendet wird), um dieses Problem zu beheben, neben meiner regulären (sicheren, aktuellen) neuesten Firefox-Installation.
Dazu muss der Web-Treiber wissen, wo sich die Firefox-Binärdatei befindet, die über die
webdriver.firefox.bin
Eigenschaft festgelegt werden kann.Was für mich funktioniert hat (Mac, Maven,
/tmp/ff46
als Installationsordner) ist:Um eine alte Version von Firefox in einem dedizierten Ordner zu installieren, erstellen Sie den Ordner, öffnen Sie den Finder in diesem Ordner, laden Sie das Firefox-DMG herunter und ziehen Sie es in diesen Finder.
quelle
So sah das Problem in Wireshar k aus
Laden Sie einfach 2.53.1 hoch und alles wird funktionieren.
quelle
Stand September 2016
Firefox 48.0
undselenium==2.53.6
funktionieren einwandfrei ohne FehlerNur um Firefox zu aktualisieren
Ubuntu 14.04
quelle
Es scheint mir, dass die beste Lösung darin besteht, auf Selenium 3.0.0 zu aktualisieren, geckodriver.exe herunterzuladen und Firefox 47 oder höher zu verwenden.
Ich habe die Firefox-Initialisierung geändert in:
quelle
Ich kann bestätigen, dass dies
selenium 2.53.6
beifirefox 44
Ubuntu 15 für mich funktioniert .quelle