2015-07-02 13 views
5

Also mit Chrom und aus irgendeinem Grunde zu kompilieren meine Python-Datei Ich kann nicht Ich versuche, Selen auf meinem Raspberry Pi zu laufen. Ich halte die folgende Fehlermeldung erhalten:Verwendung von Selen auf Raspberry Pi mit Chrom

Traceback (most recent call last): 
    File "test.py", line 4, in <module> 
    driver = webdriver.Chrome(os.path.expanduser('/usr/bin/chromedriver.exe')) 
    File "/usr/local/lib/python2.7/dist-packages/selenium-2.46.0-py2.7.egg/selenium/webdriver/chrome/webdriver.py", line 62, in __init__ 
self.service.start() 
    File "/usr/local/lib/python2.7/dist-packages/selenium-2.46.0-py2.7.egg/selenium/webdriver/chrome/service.py", line 75, in start 
os.path.basename(self.path), docs_msg) 
selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home 

Hier wird der Python-Code Ich versuche zu laufen:

from selenium import webdriver 
import os 

driver = webdriver.Chrome(os.path.expanduser('/usr/bin/chromedriver')) 

driver.get("http://www.google.com") 

driver.quit() 

Irgendwelche Ideen?

aktualisiert

Nach dem 'exe' am Ende des chromedriver entfernt, erzeugt er nun die folgenden Fehler:

Traceback (most recent call last): 
    File "test.py", line 4, in <module> 
    driver = webdriver.Chrome(os.path.expanduser('/usr/bin/chromedriver')) 
    File "/usr/local/lib/python2.7/dist-packages/selenium-2.46.0-py2.7.egg/selenium/webdriver/chrome/webdriver.py", line 62, in __init__ 
self.service.start() 
    File "/usr/local/lib/python2.7/dist-packages/selenium-2.46.0-py2.7.egg/selenium/webdriver/chrome/service.py", line 68, in start 
self.service_args, env=env, stdout=PIPE, stderr=PIPE) 
    File "/usr/lib/python2.7/subprocess.py", line 679, in __init__ 
    errread, errwrite) 
    File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child 
    raise child_exception 
OSError: [Errno 8] Exec format error 
+0

Sie müssen es mit einem 'chromedriver' binär [für Linux], um (http://chromedriver.storage.googleapis.com/index.html?path=2.16/), nicht' chromedriver.exe'. – alecxe

+0

Ich nahm die '.exe' am Ende der Chrom-Datei. Davon abgesehen kann ich Ihnen versichern, dass ich die speziell für Linux entwickelte Binärdatei verwende. – Manny

+0

Das Entfernen der '.exe' vom Ende des Dateinamens macht es nicht weniger ausführbar. Folgen Sie dem Link, den ich zur Verfügung gestellt habe, laden Sie den für Linux herunter und benutzen Sie ihn. – alecxe

Antwort

1

Ubuntu baut für armhf von Chrom-chromedriver als .deb-Dateien hat.

auf Launchpad, daher können Sie chromium-chromedriver armhf builds zum Download zur Verfügung. Laden Sie einfach die neueste Version herunter, und da sie keine Abhängigkeiten haben, können Sie sie installieren, indem Sie dpkg -i chromium-chromedriver_58.0.3029.96-0ubuntu0.14.04.1174_armhf.deb ausführen. Dann wird der Chromtreiber in /usr/lib/chromium-browser/chromedriver verfügbar sein.

+0

Das hat nicht für mich funktioniert. Nach dem Herunterladen des [geckodriver v0.19.1-Tarballs] (https://github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-arm7hf.tar.gz) und des Verschiebens von "geckodriver" nach "/usr/local/bin/', der Befehl' geckodriver -b/usr/bin/firefox --webdriver-port 45753' ergibt den Fehler 'geckodriver: /lib/arm-linux-gnueabihf/libc.so.6: version 'GLIBC_2.18' nicht gefunden (wird von geckodriver) ' – ConvexMartian

+0

ich gab Anweisungen für chromedriver, nicht geckodriver. – bmintz