#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()