2016-08-08 8 views
10

Versuchen zu lernen, Selen zu verwenden, gelang es mir, ersten Fehler zu überwinden, bei dem chrome-Treiber nicht im Pfadnamen war, aber es hat einen weiteren Fehler ausgelöst.OSError: [Errno 8] Exec-Format Fehler selen

from selenium import webdriver 
    from selenium.webdriver.common.keys import Keys 


    driver = webdriver.Chrome('/Users/williamneal/Scratch/Titanic/chromedriver') 
    driver.get("http://www.bbc.com") 

Der Fehler: Traceback (jüngste Aufforderung zuletzt):

File "<ipython-input-1-84256e62b8db>", line 5, in <module> 
    driver = webdriver.Chrome('/Users/williamneal/Scratch/Titanic/chromedriver') 

    File "/Users/williamneal/anaconda/lib/python3.5/site-packages/selenium/webdriver/chrome/webdriver.py", line 62, in __init__ 
    self.service.start() 

    File "/Users/williamneal/anaconda/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 64, in start 
    stdout=self.log_file, stderr=self.log_file) 

    File "/Users/williamneal/anaconda/lib/python3.5/subprocess.py", line 950, in __init__ 
    restore_signals, start_new_session) 

    File "/Users/williamneal/anaconda/lib/python3.5/subprocess.py", line 1544, in _execute_child 
    raise child_exception_type(errno_num, err_msg) 

OSError: [Errno 8] Exec format error 

Es ist eine mögliche Lösung here, die Chrome-Treiber über ZuhauseBrew umfasst die Installation, aber diese Option ist für mich nicht zur Verfügung.

Irgendwelche Ideen?

Antwort

9

Sieht aus wie dies über das Format von Chromedriver binär beschweren. Es könnte sein, dass die Plattform und das Chroma-Treiber-Format nicht übereinstimmen. Zum Beispiel Windows erfordert chromedriver.exe, während es verschiedene Formate für Linux und Mac gibt.

Wenn Sie nicht durch Paket-Manager installieren mögen, laden Sie sich einfach chromedriver von https://sites.google.com/a/chromium.org/chromedriver/downloads

Hinweis: Wählen Sie Datei nach Ihrem o

es dann überall Platz auf dem o und übergeben diesen Weg als eine Streit. Sie können auch die Umgebungsvariable webdriver.chrome.driver festlegen, wenn Sie den Speicherort nicht jedes Mal weitergeben möchten.

Verwandte Themen