Bei der Arbeit mit Selen bin ich auf ein Problem gestoßen. Für mein Projekt muss ich Chrome verwenden. Ich kann jedoch keine Verbindung zu diesem Browser herstellen, nachdem ich ihn mit Selenium gestartet habe.
Aus irgendeinem Grund kann Selenium Chrome nicht selbst finden. Dies passiert, wenn ich versuche, Chrome ohne Pfad zu starten:
Traceback (most recent call last):
File "./obp_pb_get_csv.py", line 73, in <module>
browser = webdriver.Chrome() # Get local session of chrome
File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
self.service.start()
File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 58, in start
and read up at http://code.google.com/p/selenium/wiki/ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path. Please download from http://code.google.com/p/selenium/downloads/list and read up at http://code.google.com/p/selenium/wiki/ChromeDriver'
Um dieses Problem zu lösen, habe ich den Chromium-Pfad in den Code aufgenommen, mit dem Chrome gestartet wird. Der Interpreter findet jedoch keinen Socket, zu dem eine Verbindung hergestellt werden kann:
Traceback (most recent call last):
File "./obp_pb_get_csv.py", line 73, in <module>
browser = webdriver.Chrome('/usr/bin/chromium') # Get local session of chrome
File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
self.service.start()
File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 64, in start
raise WebDriverException("Can not connect to the ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'Can not connect to the ChromeDriver'
Ich habe auch versucht, das Problem zu lösen, indem ich Chrome gestartet habe mit:
Chrom - Fernschalenport = 9222
Dies funktionierte jedoch auch nicht.
PS. Hier einige Informationen zu meinem System:
www-client: chrom 15.0.874.121 dev-lang: Python 2.7.2-r3 Selen 2.11.1 Betriebssystem: GNU / Linux Gentoo Kernel 3.1.0-gentoo-r1
Antworten:
Sie müssen sicherstellen, dass sich die eigenständige ChromeDriver-Binärdatei (die sich von der Chrome-Browser-Binärdatei unterscheidet) entweder in Ihrem Pfad befindet oder in der Umgebungsvariablen webdriver.chrome.driver verfügbar ist.
Ausführliche Informationen zum Verdrahten finden Sie unter http://code.google.com/p/selenium/wiki/ChromeDriver .
Bearbeiten:
Richtig, scheint ein Fehler in den Python-Bindungen beim Lesen der Chromedriver-Binärdatei aus dem Pfad oder der Umgebungsvariablen zu sein. Wenn sich chromedriver nicht in Ihrem Pfad befindet, müssen Sie ihn als Argument an den Konstruktor übergeben.
quelle
Für Linux
chromium-browser -version
sudo apt-get install chromium-browser
/usr/bin
Verzeichnissudo mv chromedriver /usr/bin
/usr/bin
Verzeichniscd /usr/bin
sudo chmod a+x chromedriver
ausführen, um es als ausführbar zu markieren.Endlich können Sie den Code ausführen.
quelle
Nur Mac OSX
Ein einfacher Weg, um loszulegen (vorausgesetzt, Sie haben bereits Homebrew installiert. Wenn nicht, sollten Sie dies zuerst tun und Homebrew Ihr Leben verbessern lassen), indem Sie einfach den folgenden Befehl ausführen:
Das sollte den Chromedriver in deinen Weg bringen und du solltest fertig sein.
quelle
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
brew doctor
und sehen Sie, ob das etwas findet.Für Windows
Laden Sie ChromeDriver über diesen direkten Link herunter ODER holen Sie sich die neueste Version von dieser Seite .
Fügen Sie die
chromedriver.exe
Datei in IhrenC:\Python27\Scripts
Ordner ein.Das sollte jetzt funktionieren:
quelle
Für Fenster bitte
chromedriver.exe
unter platzieren<Install Dir>/Python27/Scripts/
quelle
/usr/lib/
oder woanders?PATH
war nicht genug, um sie/Scripts/
dort abzulegen, wo sieride.py
funktioniert.Es gibt zwei Möglichkeiten, Selenium-Python-Tests in Google Chrome auszuführen. Ich denke über Windows nach (in meinem Fall Windows 10):
Voraussetzung: Laden Sie den neuesten Chrome-Treiber von folgender Adresse herunter: https://sites.google.com/a/chromium.org/chromedriver/downloads
Weg 1:
i) Extrahieren Sie die heruntergeladene Zip-Datei in ein Verzeichnis / einen Speicherort Ihrer Wahl.
ii) Legen Sie den ausführbaren Pfad in Ihrem Code wie folgt fest:
Weg 2:
i) Fügen Sie einfach die Datei chromedriver.exe unter / Python / Scripts / ein (in meinem Fall war der Ordner: C: \ Python36 \ Scripts)
ii) Schreiben Sie nun den einfachen Code wie folgt :
quelle
Für die Windows-IDE:
Wenn Ihr Pfad nicht funktioniert, können Sie versuchen, den Pfad
chromedriver.exe
wie in dieser Projektstruktur zu Ihrem Projekt hinzuzufügen .Dann sollten Sie das
chromedriver.exe
in Ihre Hauptdatei laden . Ich habe dasdriver.exe
in geladendriver.py
...
bedeutetdriver.py's
oberes Verzeichnis.
bedeutet das Verzeichnis, in demdriver.py
sich das befindetHoffe das wird hilfreich sein.
quelle