Ошибка операционной системы: [Ошибка 8] Ошибка формата Exec с GeckoDriver и Selenium на macOS

#python #selenium

#питон #селен #firefox #selenium-веб-драйвер #geckodriver

Вопрос:

Я использую firefox gecko driver для создания бота, я продолжаю получать сообщения об ошибках с моим ботом, и я обнаружил, что источником сообщения является:

 from selenium import webdriver

browser= webdriver.Firefox()
 

линии.

Я добавил все файлы, упомянутые в сообщении об ошибке, в path, включая драйвер gecko, firefox и другие документы меньшего размера. Я в полной растерянности

Вот сообщение об ошибке:

 Traceback (most recent call last):
  File "/usr/local/bin/fuckobot1.py", line 3, in <module>
    browser= webdriver.Firefox()

File "/Users/'myname'/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
    self.service.start()

File "/Users/'myname'/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/common/service.py", line 76, in start
    stdin=PIPE)

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child

raise child_exception
OSError: [Errno 8] Exec format error
 

Комментарии:

1. Вероятно, это произошло из-за использования исполняемого файла, который не предназначен для вашей операционной системы, какую ОС вы используете?

2. Я использую macOS Sierra версии 10.12.6

3. И какие исполняемые файлы вы используете?

4. я использую geckodriver версии 0.23.0

5. мне очень жаль, я новичок, который откусил больше, чем мог прожевать, пообещав другу, что он поможет ему с ботом.

Ответ №1:

Это сообщение об ошибке…

 OSError: [Errno 8] Exec format error
 

… подразумевает, что двоичный файл GeckoDriver, который был вызван, не был в правильном формате.

Ваша основная проблема заключается в несовместимости двоичного формата GeckoDriver с базовой операционной системой.

Поскольку вы находитесь на macOS, вам необходимо загрузить geckodriver-v0.23.0-macos.tar.gz из mozilla/geckodriver разархивируйте / разархивируйте его и укажите абсолютный путь к GeckoDriver через аргумент executable_path следующим образом:

 from selenium import webdriver

browser= webdriver.Firefox(executable_path='/path/to/geckodriver')
 

Комментарии:

1. у меня есть еще одна небольшая проблема, я помещаю geckodriver в path, но я все равно получаю сообщение об ошибке ‘исполняемый файл geckodriver’ должен быть в PATH.

2. Я не совсем уверен, что это значит. пожалуйста, уточните.

3. @PYANNANANA я имел в виду, можете ли вы задать новый вопрос вместе с журналами трассировки, пожалуйста?

4. я пытался, но по какой-то причине я на пределе, я задал слишком много вопросов. переполнение стека не позволит мне

5. пожалуйста, помогите, я не уверен, что делать

Ответ №2:

Это может быть ответом на эту проблему,
когда он показывает что-то вроде: ваш профиль Firefox не может быть загружен. Возможно, он отсутствует или недоступен.
Актуальная проблема в том, что Firefox 48.0 или более поздней версии не работает с версией selenium 3.0.0 или более поздней версии.
поэтому, пожалуйста, проверьте свои версии. итак, чтобы заставить его работать, вам также необходимо обновить последнюю версию selenium и соответствующую версию geckodriver, которая устраняет эту проблему.

затем попробуйте основные команды,

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

driver = webdriver.Firefox()