Подтвердить что ты не робот

OSError: [Errno 8] Ошибка формата Exec selenium

Пытаясь научиться использовать селен, мне удалось преодолеть первую ошибку, в которой драйвер chrome не был в имени пути, но он породил еще одну ошибку.

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

Ошибка:   Traceback (последний последний звонок):

  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

Существует потенциальное решение здесь, которое включает установку драйверов Chrome через Home Brew, но эта опция недоступна для меня.

Любые идеи?

4b9b3361

Ответ 1

Похоже, что он жалуется на формат двоичного кода хромирования. Это может быть из-за несоответствия формата платформы и хромирования. Например, для окон требуется chromedriver.exe, тогда как существуют разные форматы для linux и mac.

Если вы не хотите устанавливать через диспетчер пакетов, просто загрузите хромированный рекордер из https://sites.google.com/a/chromium.org/chromedriver/downloads

Примечание. Выберите файл в соответствии с вашим os

Затем поместите его в любом месте на os и передайте этот путь в качестве аргумента. Вы также можете установить переменную среды webdriver.chrome.driver, если вы не хотите передавать местоположение каждый раз.

Ответ 2

К вашему сведению, вы также можете столкнуться с этой проблемой, если не разархивировали хромедрайвер перед добавлением его в PATH.

Ответ 3

chromedriver Добавить переменные среды