web-dev-qa-db-fra.com

OSError: [Errno 8] Sélénium d'erreur de format Exec

En essayant d'apprendre à utiliser Selenium, j'ai réussi à surmonter la première erreur qui impliquait que le pilote chrome ne soit pas dans le nom du chemin mais il a généré une autre erreur. 

  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")

L'erreur: Traceback (appel le plus récent en dernier):

  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

Il existe une solution potentielle ici , qui consiste à installer des pilotes Chrome via Home Brew, mais cette option ne m’est pas offerte. 

Des idées?

14
user6204921

On dirait que cela se plaint du format de binaire chromedriver . Cela pourrait être dû à une discordance de format entre plate-forme et chromedriver. Par exemple, windows nécessite chromedriver.exe alors qu'il existe différents formats pour linux et mac.

Si vous ne souhaitez pas installer via le gestionnaire de paquets, téléchargez simplement chromedriver à partir de https://sites.google.com/a/chromium.org/chromedriver/downloads

Remarque: Choisissez le fichier selon votre système d'exploitation

Ensuite, placez-le n'importe où sur le système d'exploitation et transmettez ce chemin en tant qu'argument. Vous pouvez également définir la variable d'environnement webdriver.chrome.driver si vous ne souhaitez pas transmettre l'emplacement à chaque fois.

13
Satish Gupta

Pour votre information, vous pourriez également rencontrer ce problème si vous ne dézippiez pas le chromedriver avant de l’ajouter à votre PATH. 

1
janDro