2016-08-08 13 views
10

Próbując nauczyć się używania selenu, udało mi się przezwyciężyć pierwszy błąd, który polegał na tym, że sterownik chromu nie znajdował się w nazwie ścieżki, ale wystąpił kolejny błąd.OSError: [Errno 8] Błąd formatu Exec 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") 

Błąd: Traceback (najnowsza wezwanie ostatni):

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 

Istnieje potencjalne rozwiązanie here, która polega na zainstalowaniu Chrome sterowników poprzez samogon ale ta opcja nie jest dostępna dla mnie.

Wszelkie pomysły?

Odpowiedz

9

Wygląda na to, że narzeka na format binarny chromedriver. Przyczyną może być niedopasowanie formatu platformy i chromiedriver. Na przykład Windows wymaga chromeedriver.exe, podczas gdy istnieją różne formaty dla Linux i Mac.

Jeśli nie chcesz instalować przez menedżer pakietów, wystarczy pobrać chromedriver z https://sites.google.com/a/chromium.org/chromedriver/downloads

Uwaga: Wybierz plik, jak na swój os

Następnie umieścić go w dowolnym miejscu na os i przekazać tę ścieżkę jako argument. Możesz również ustawić zmienną środowiskową webdriver.chrome.driver, jeśli nie chcesz przekazywać lokalizacji za każdym razem.

Powiązane problemy