Selen mit Python - Geckodriver ausführbar muss in PATH sein
Ich bin neu in der Programmierung und begann mit Python
etwa 2 Monaten, und bin dabei über Sweigart die Automatisieren Sie die Langweilige Sachen mit Python text. Ich bin mit LEERLAUF und schon installiert der Selen-Modul und den Firefox-browser.
Immer wenn ich versuchte zu laufen, die webdriver-Funktion, bekomme ich diese:
from selenium import webdriver
browser = webdriver.Firefox()
Ausnahme :-
Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0DA1080>>
Traceback (most recent call last):
File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
self.stop()
File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0E08128>>
Traceback (most recent call last):
File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
self.stop()
File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Traceback (most recent call last):
File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 64, in start
stdout=self.log_file, stderr=self.log_file)
File "C:\Python\Python35\lib\subprocess.py", line 947, in __init__
restore_signals, start_new_session)
File "C:\Python\Python35\lib\subprocess.py", line 1224, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
browser = webdriver.Firefox()
File "C:\Python\Python35\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 135, in __init__
self.service.start()
File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 71, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
Ich glaube, ich muss den Pfad für geckodriver
aber nicht sicher, wie, also, kann mir jemand sagen, wie ich dies tun?
InformationsquelleAutor der Frage tadm123 | 2016-10-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuerst müssen Sie downloaden Sie die ausführbare Datei geckodriver von hier aus zu laufen, neuesten firefox mit selenium
Eigentlich Der Selenium-client-Bindungen versucht, die
geckodriver
ausführbare Datei vom systemPATH
. Müssen Sie das Verzeichnis mit der ausführbaren Datei auf dem system Pfad.Auf Unix-Systemen können Sie die folgenden Anhängen, es auf Ihrem system, such-Pfad, wenn Sie eine bash kompatible shell:
Unter Windows müssen Sie zum aktualisieren der Path-variable hinzufügen, um den kompletten Pfad zu der ausführbaren geckodriver manuell oder Befehlszeile(vergessen Sie nicht, Ihr system neu zu starten nach dem hinzufügen von ausführbaren geckodriver in-system-PFAD wirksam). Das Prinzip ist das gleiche wie auf Unix.
Können Sie jetzt führen Sie Ihren code gleiche wie Sie tun, wie unten :-
Ausnahme klar sagt, Sie haben firefox installiert in einem anderen Ordner, während Selen versuchen Sie firefox und starten Sie die Standard-Lage, aber es nicht finden konnte. Sie müssen explizit firefox installiert binären Lage zu starten Sie firefox wie folgt :-
InformationsquelleAutor der Antwort Saurabh Gaur
diese Schritte für mich GELÖST, unter ubuntu firefox 50.
Download geckodriver
Kopieren geckodriver in /usr/local/bin
Müssen Sie NICHT hinzufügen
InformationsquelleAutor der Antwort Andrea Perdicchia
Diese gelöst für mich.
InformationsquelleAutor der Antwort Nesa
Die Antwort von @saurabh löst das Problem aber nicht erklären, warum Automatisieren Sie die Langweilige Sachen mit Python nicht schließen diejenigen ein, die Schritte.
Verursacht wird diese durch das Buch basiert auf selenium 2.x und der Firefox-Treiber für diese Serie braucht nicht die gecko-Treiber. Die Gecko-Schnittstelle zu fahren, der browser war nicht verfügbar, wenn Selen entwickelt wurde.
Den neueste version in der Selen-2.die x-Serie ist 2.53.6 (siehe e.g diese Antwortenfür die ein einfacher Blick auf die Versionen).
Den 2.53.6 version Seite nicht erwähnen gecko an alle. Aber seit der version 3.0.2 in der Dokumentation ausdrücklich zu installieren, müssen Sie die gecko-Treiber.
Wenn nach einem upgrade (oder Installation auf einem neuen system), Ihre software, die fein gearbeitet, bevor (oder auf dem alten system) funktioniert nicht mehr und Sie sind in Eile, pin-Selen-version in Ihrem virtualenv by doing
aber natürlich die langfristige Lösung für die Entwicklung ist die Einrichtung eines neuen virtualenv mit der neuesten version von Selen, installieren Sie das gecko-Treiber und testen ob noch alles funktioniert wie erwartet. Aber die großen Versionssprung führen könnten andere API-änderungen, die nicht abgedeckt sind von Ihrem Buch, so möchten Sie vielleicht zu halten mit den älteren Selen, bis Sie genug Vertrauen haben, die Sie lösen können Abweichungen zwischen den selenium2 und selenium3 API selbst.
InformationsquelleAutor der Antwort Anthon
Auf macOS mit Homebrew bereits installiert, können Sie einfach starten Sie das Terminal-Befehl
Weil homebrew bereits hast verlängern die
PATH
es gibt keine Notwendigkeit, ändern Sie alle startup-Skripte.InformationsquelleAutor der Antwort roskakori
Einrichten geckodriver für Selenium Python:
Es braucht geckodriver Pfad mit FirefoxDriver wie unten code:
Download geckodriver für Ihre passende OS (von https://github.com/mozilla/geckodriver/releases) -> Entpacken Sie es in einen Ordner Ihrer Wahl -> Legen Sie den Pfad korrekt wie oben erwähnt
Ich bin mit Python 3.6.2 und Selenium WebDriver 3.4.3 in Windows 10.
Eine weitere Möglichkeit zum einrichten geckodriver:
i) fügen Sie Einfach die geckodriver.exe unter /Python/Scripts/(In meinem Fall der Ordner war: C:\Python36\Scripts)
ii) Nun schreiben Sie einfachen code wie folgt:
InformationsquelleAutor der Antwort Ripon Al Wasim
Schritte für MAC:
Die einfache Lösung ist zum herunterladen GeckoDriver und fügen Sie es zu Ihrem system-PFAD. Sie können entweder mithilfe der beiden Ansätze:
Kurze Methode:
1) Download und entpacken Geckodriver.
2) Erwähnen den Pfad während der Initiierung der Fahrer:
Lange Methode:
1) Download und entpacken Geckodriver.
2) Öffnen Sie
.bash_profile
. Wenn Sie noch nicht erstellt haben Sie noch, können Sie dies mit dem Befehl:touch ~/.bash_profile
. Dann öffnen Sie es mit:open ~/.bash_profile
3) unter Berücksichtigung GeckoDriver Datei in Ihrem Downloads-Ordner, fügen Sie die folgende Zeile(N)
.bash_profile
Datei:Durch das Sie den Pfad Anhängen, um GeckoDriver, um Ihr System PFAD. Das sagt dem system, wo GeckoDriver befindet sich beim starten des Selenium-Skripte.
4) Speichern Sie die
.bash_profile
und Kraft, es auszuführen. Dies lädt die Werte sofort ohne Neustart. Um dies zu tun, können Sie führen Sie den folgenden Befehl ein:source ~/.bash_profile
5) Das ist es. Sie sind FERTIG!. Führen Sie das Python-Skript nun.
InformationsquelleAutor der Antwort Umang Sardesai
Habe ich tatsächlich entdeckt Sie die neuesten geckodriver mit sich, dass es in den system-Pfad. Derzeit bin ich mit
https://github.com/mozilla/geckodriver/releases/download/v0.12.0/geckodriver-v0.12.0-win64.zip
Firefox 50.1.0
Python 3.5.2
Selen 3.0.2
Windows 10
Bin ich mit einem VirtualEnv (die ich verwalten mit PyCharm, ich nehme an, es nutzt Pip zu installieren alles)
In der folgende code, den ich verwenden kann einen bestimmten Pfad für die geckodriver mit der executable_path paramater (ich entdeckte dies, indem er einen Blick in
Lib\site-packages\selenium\webdriver\firefox\webdriver.py ). Hinweis: ich habe den Verdacht, dass die Reihenfolge der parameter beim Aufruf der webdriver ist wichtig, das ist der Grund, warum die executable_path ist der Letzte in meinem code (der 2. Letzte Zeile aus, um die weit rechts)
Können Sie auch bemerken, dass ich verwenden, um eine eigene firefox-Profil zu bekommen, um die sec_error_unknown_issuer problem, dass, wenn die Website, die Sie gerade testen, hat ein nicht vertrauenswürdiges Zertifikat. sehen Wie Sie Firefox deaktivieren nicht Vertrauenswürdige Verbindung Warnung mit Selen?
Nach der Untersuchung wurde festgestellt, dass die Marionette Treiber ist unvollständig und noch in Arbeit ist, und kein Betrag der Einstellung von verschiedenen Funktionen oder die Profil-Optionen für Abweisung oder Einstellung certifcates war zur Arbeit zu gehen. So war es nur einfacher, ein benutzerdefiniertes Profil verwenden.
Jedenfalls hier der code, wie ich die geckodriver zu arbeiten, ohne in den Pfad:
InformationsquelleAutor der Antwort Roochiedoor
Ich bin mit Windows 10 und dieser arbeitete für mich:
InformationsquelleAutor der Antwort anotherNoob
Es ist wirklich eher traurig, dass keines der Bücher auf Selen/Python und die meisten der Kommentare zu diesem Thema per Google nicht eindeutig erklären, die Pfade der Logik, um diese Einrichtung am Mac (alles Windows!!!!). Die youtubes alle pickup an der "nach" du hast die Wegfindung setup (in meinen Augen die günstige Möglichkeit!). Also, für die Sie wunderbare Mac-Benutzer sind, verwenden Sie die folgenden zu Bearbeiten, bash Pfad-Dateien:
>$touch ~/.bash_profile; open ~/.bash_profile
Dann fügen Sie einen Pfad wie diesen....
*# Setting PATH for geckodriver
PFAD="/usr/bin/geckodriver:${PATH}"
export-PFAD
Einstellung PFAD für Selen firefox
PATH=“~/Users/yourNamePATH/VEnvPythonInterpreter/lib/python2.7/site-packages/selenium/webdriver/firefox/:${PATH}"
export-PFAD
Einstellung PFAD für ausführbare Datei auf den firefox-Treiber
PATH="/Users/yournamePATH/VEnvPythonInterpreter/lib/python2.7/site-packages/selenium/webdriver/common/service.py:${PATH}"
export-PFAD*
Dieser arbeitete für mich. Mein Anliegen ist es, Wann wird der Selen-Windows-community zu spielen beginnen das eigentliche Spiel und für uns Mac-user in Ihre arroganten club-Mitgliedschaft.
InformationsquelleAutor der Antwort JustASteve
Einige zusätzliche ein - /Klärung für zukünftige Leser dieses Threads:
Den folgenden genügt als Lösung für Windows 7, Python-3.6, Selen 3.11:
@dsalaj Hinweis in diesem thread früher für Unix gilt für Windows wie auch; basteln mit dem PFAD env. variable auf der Windows-Ebene und Neustart des Windows-Systems vermieden werden können.
(1) Download geckodriver (wie beschrieben in diesem thread oben) und legen Sie die (entpackten) geckdriver.exe bei X:\Folder\of\your\choice
(2) Python-code-Beispiel:
Hinweise:
(1) dauert Es etwa 10 Sekunden für den oben genannten code öffnen Sie den Firefox-browser für die angegebene url.
(2) Die python-Konsole zeigt die folgenden Fehlermeldung, wenn es keine server bereits ausgeführt wird auf die angegebene url oder die dort eine Seite mit dem Titel mit dem string 'Django':
Selen.common.Ausnahmen.WebDriverException: Nachricht: der Erreichte Fehler-Seite: about:neterror?e=connectionFailure&u=http%3A//localhost%3A8000/&c=UTF-8&f=regular&d=Firefox%20can%E2%80%9
InformationsquelleAutor der Antwort Snidhi Sofpro
Selen, beantwortet diese Frage in Ihrer BESCHREIBUNG.erste
Im Grunde nur die download-geckodriver, entpacken Sie es und verschieben Sie die ausführbare Datei in /usr/bin-Ordner
InformationsquelleAutor der Antwort Peter Graham
Der einfachste Weg für windows!
Ich habe gerade die neueste version runtergeladen geckodriver (ich habe win10) von hier und fügte hinzu, dass geckodriver.exe Datei in der python-Verzeichnis
C:\Users\my.name
(die bereits im PFAD)Bei mir hat es geklappt!
InformationsquelleAutor der Antwort Jalles10
Mac-10.12.1 2.7.10 python
diese Arbeit für mich 🙂
InformationsquelleAutor der Antwort do01
Auf Raspberry Pi-ich hatte zum erstellen von ARM-Treiber und setzen Sie die geckodriver und log Pfad:
sudo nano /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py
InformationsquelleAutor der Antwort Nathan Gisvold
Besuchen Gecko-Treiber abrufen der url für die gecko-Treiber aus dem Download-Bereich.
Clone das repo https://github.com/jackton1/script_install.git
cd script_install
Laufen
./installer --gecko-driver url_to_gecko_driver
InformationsquelleAutor der Antwort jackotonye
Ich bin mit Windows 10 und Anaconda2. Ich habe versucht, system-variable path aus, aber hat nicht geklappt. Dann added mich einfach geckodriver.exe Datei Anaconda2/Scripts Ordner und alles funktioniert nun Super.
Für mich war der Weg:-
C:\Users\Bhavya\Anaconda2\Scripts
InformationsquelleAutor der Antwort Bhavya Ghai
Wenn Sie Anacondaalles, was Sie tun müssen, ist, aktivieren Sie Ihre virtuelle Umgebung und installieren Sie dann geckodriver mit den folgenden Befehl:
InformationsquelleAutor der Antwort Masaguaro