OSError: [Errno 8] Ошибка формата Exec с GeckoDriver и Selenium на MacOS

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

from selenium import webdriver

browser= webdriver.Firefox()

линий.

Я добавил все файлы, упомянутые в сообщении об ошибке, в путь, включая драйвер 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

person PYANNANANA    schedule 15.10.2018    source источник
comment
Вероятно, это произошло из-за использования исполняемого файла, не предназначенного для вашей операционной системы. Какую ОС вы используете?   -  person Fernando Irarrázaval G    schedule 15.10.2018
comment
Я использую MacOS Sierra версии 10.12.6   -  person PYANNANANA    schedule 15.10.2018
comment
А какие исполняемые файлы вы используете?   -  person Fernando Irarrázaval G    schedule 15.10.2018
comment
я использую geckodriver версии 0.23.0   -  person PYANNANANA    schedule 15.10.2018
comment
Мне очень жаль, я новичок, который откусил больше, чем мог прожевать, пообещав другу, что поможет ему с ботом.   -  person PYANNANANA    schedule 15.10.2018
comment
Вам нужен geckodriver? Вы можете загрузить хромированный диск и использовать эту строку кода driver = webdriver.Chrome('/path/to/chromedriver') chromedriver.chromium.org/getting-started `   -  person Fernando Irarrázaval G    schedule 15.10.2018
comment
У меня уже есть коды разработчиков   -  person PYANNANANA    schedule 15.10.2018
comment
извините, что я имел в виду, у меня есть URL-коды (из элемента проверки) веб-сайта, который я использую в firefox, и мне нужно закончить этот код до среды, поэтому, если коды элементов проверки не являются постоянными, я не могу переключиться   -  person PYANNANANA    schedule 15.10.2018
comment
Драйвер не должен изменять остальную часть кода.   -  person Fernando Irarrázaval G    schedule 15.10.2018
comment
Я понимаю это, но у меня есть коды элементов поиска, в которых я использую определенные места на странице, чтобы купить товар. коды не взаимозаменяемы между chrome и firefox   -  person PYANNANANA    schedule 15.10.2018
comment
Могу ли я что-нибудь сделать, не меняя свой веб-драйвер?   -  person PYANNANANA    schedule 15.10.2018
comment
Попробуйте подтвердить это с помощью другого инструмента, например katalon, и простого теста, чтобы открыть страницу.   -  person lloyd    schedule 15.10.2018


Ответы (2)


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

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')
person DebanjanB    schedule 15.10.2018
comment
У меня есть еще одна небольшая проблема, я поставил geckodriver в путь, но я все еще получаю сообщение об ошибке: исполняемый файл geckodriver должен находиться в PATH. - person PYANNANANA; 15.10.2018
comment
Я не совсем понимаю, что это значит. просьба уточнить. - person PYANNANANA; 15.10.2018
comment
@PYANNANANA Я имел в виду, не могли бы вы поднять новый вопрос вместе с журналами трассировки, пожалуйста? - person DebanjanB; 15.10.2018
comment
Я пробовал, но по какой-то причине я на пределе своих возможностей, я просил слишком много. переполнение стека не позволит мне - person PYANNANANA; 15.10.2018
comment
пожалуйста, помогите, я не уверен, что делать - person PYANNANANA; 15.10.2018

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

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

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

driver = webdriver.Firefox() 
person Ashish Kamble    schedule 15.10.2018