Selenium с использованием Python - исполняемый файл Geckodriver должен быть в PATH

435

Я новичок в программировании и начал с Pythonоколо 2 месяцев назад, и я перейду к Sweigart's Automate the Boring Stuff с текстом Python . Я использую IDLE и уже установил модуль селена и браузер Firefox. Всякий раз, когда я пытался запустить функцию webdriver, я получаю это:

from selenium import webdriver
browser = webdriver.Firefox()

Исключение: -

Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0DA1080>>
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
    self.stop()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0E08128>>
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
    self.stop()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 64, in start
    stdout=self.log_file, stderr=self.log_file)
  File "C:\Python\Python35\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "C:\Python\Python35\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    browser = webdriver.Firefox()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 135, in __init__
    self.service.start()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 71, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. 

Я думаю, что мне нужно установить путь, geckodriverно не уверен, как, так что кто-нибудь может сказать мне, как мне это сделать?

tadm123
источник
2
Пожалуйста, смотрите мой ответ на подобный вопрос здесь
Эндрю
Я помещаю geckodriver.exe в каталог Python / Python35, чтобы он имел тот же путь, и я получаю еще больше проблем.
tadm123
81
На Mac:brew install geckodriver
Nostalg.io
1
Я обнаружил, что запускать его через браузер Chrome немного быстрее, чем в Firefox, вам просто нужно скачать его chromedriverдля этого.
tadm123
Примечание: есть Testcafe, который недавно был открыт. Он не требует никаких плагинов для браузера, они встроены. Я хотел использовать Selenium, но это выглядит как интересная альтернатива.
Ehvince

Ответы:

355

selenium.common.exceptions.WebDriverException: Сообщение: исполняемый файл 'geckodriver' должен находиться в переменной PATH.

Прежде всего вам нужно скачать последнюю версию исполняемого файла geckodriver, чтобы запустить последнюю версию Firefox с использованием селена.

На самом деле клиентские привязки Selenium пытаются найти geckodriverисполняемый файл из системы PATH. Вам нужно будет добавить каталог, содержащий исполняемый файл, в системный путь.

  • В системах Unix вы можете сделать следующее, чтобы добавить его в путь поиска вашей системы, если вы используете bash-совместимую оболочку:

    export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step
  • В Windows вам потребуется обновить системную переменную Path, чтобы вручную добавить полный путь к каталогу к исполняемому гекодрайверу или в командной строке (не забудьте перезапустить вашу систему после добавления исполняемого гекодривера в системный PATH, чтобы изменения вступили в силу) . Принцип такой же, как на Unix.

Теперь вы можете запустить свой код так же, как вы делаете это ниже: -

from selenium import webdriver

browser = webdriver.Firefox()

selenium.common.exceptions.WebDriverException: Сообщение: ожидаемое двоичное расположение браузера, но не удается найти двоичный файл в расположении по умолчанию, не предусмотрена возможность 'moz: firefoxOptions.binary' и не установлен двоичный флаг в командной строке.

Исключение ясно указывает, что вы установили Firefox в другом месте, в то время как Selenium пытается найти Firefox и запустить его из местоположения по умолчанию, но не может найти. Вы должны явно указать установленное бинарное расположение firefox для запуска firefox, как показано ниже: -

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('path/to/installed firefox binary')
browser = webdriver.Firefox(firefox_binary=binary)
Саураб Гаур
источник
8
Спасибо, но я установил my geckodriver.exeв C:\Python\Python35\seleniumкаталоге, и я установил путь, как вы описали, но он дает мне ошибку ниже:
tadm123
4
Спасибо @Saurabh Gaur, это работает сейчас. Я добавил путь Firefox к системным переменным вручную, и все это работает. Требуется немного времени для запуска, но я предполагаю, что это нормально. Спасибо!
tadm123
3
Сначала я получил сообщение об ошибке «WebDriverException: Сообщение: не удалось запустить браузер: разрешение запрещено», когда я начал указывать двоичный путь firefox, но перезапуск компьютера (Windows 10) решил проблему. - На тот случай, если кто-то другой столкнется с той же проблемой, что и я.
NoSuchElephantException
3
Что такое бинарный файл? Это значит исполняемый файл?
Пользователь
12
В дополнение к этому ответу я хотел бы подробнее остановиться на настройке PATHсреды unix. Вы можете установить его в коде, поскольку он не нужен для всей системы: os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/' или просто сохраните двоичный файл geckodriver в каталоге, который уже находится на вашем пути:mv geckodriver /usr/local/bin
dsalaj
161

Это решило это для меня.

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'your\path\geckodriver.exe')
driver.get('http://inventwithpython.com')
Nesa
источник
Если вы получили неправильное разрешение, попробуйте удалить [r '] из пути, просто "excecutable_path =' path \ to \ your'diretory '"
Дариус
@adityarawat в какой операционной системе вы работаете?
Неса
но теперь я получаю OSError вместо неправильных разрешений. Мне как-то удалось скопировать geckodriver в / usr / local / bin. но теперь эта новая ошибка убивает меня
aditya rawat
@adityarawat вы можете скачать geckodriver независимо отсюда: github.com/mozilla/geckodriver/releases распакуйте его с помощью tar и сделайте его исполняемым с помощью chmod + x, он не обязательно должен быть в / usr / local / bin, у вас просто есть указать свой путь к нему
Неса
просто чтобы быть понятным, я скачал файл arm7hf.tar и извлек его, а также добавил его в путь с помощью команды export PATH=$PATH:geckodriver(он извлекается в Desktop). Но это тоже не помогло. Я все еще получаю OSError [errno 8]
aditya rawat
122

это шаги решены для меня на Ubuntu Firefox 50.

  1. Скачать geckodriver

  2. Скопируйте geckodriver в / usr / local / bin

Вам НЕ нужно добавлять

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/usr/bin/firefox'
browser = webdriver.Firefox(capabilities=firefox_capabilities)
Андреа Пердиккия
источник
В вашем коде нельзя добавить переменную возможности
Андреа Пердиккия
Вы случайно не знаете, как установить каталог для загрузки Firefox? Я добавил следующий вопрос Установить настройки Firefox . Любая помощь приветствуется.
d84_n1nj4
В Debian или Ubuntu вы должны использовать команду apt для установки Firefox. Для Windows я понятия не имею, извините
Андреа Пердиккия
Спасибо. После применения этого ответа я также воспользовался этим решением для решения следующей проблемы: stackoverflow.com/questions/43713445/…
HackNone
Спасибо, Pycharm не нашел geckodriver, хотя он был дома и в самой папке проекта, но после перемещения его в / usr / local / bin он работал отлично
Рональд Дас
32

Ответ @saurabh решает проблему, но не объясняет, почему Automation the Boring Stuff с Python не включает эти шаги.

Это вызвано тем, что книга основана на селене 2.x, и драйверу Firefox для этой серии не нужен драйвер gecko. Интерфейс Gecko для управления браузером был недоступен, когда разрабатывался селен.

Последняя версия в серии 2.x селеном является 2.53.6 (см , например , эти ответы , для облегчения зрения версий).

Страница 2.53.6 версии не упоминается геккона вообще. Но начиная с версии 3.0.2 в документации прямо говорится, что вам нужно установить драйвер gecko.

Если после обновления (или установки в новой системе) ваше программное обеспечение, которое раньше работало нормально (или в вашей старой системе), больше не работает, и вы спешите, добавьте версию селеном в virtualenv, выполнив

pip install selenium==2.53.6

но, конечно, долгосрочным решением для разработки является установка нового virtualenv с последней версией selenium, установка драйвера gecko и проверка, все ли по-прежнему работает должным образом. Но основной удар по версии может привести к другим изменениям API, которые не описаны в вашей книге, так что вы можете придерживаться более старого селена, пока вы не будете достаточно уверены, что сможете самостоятельно исправить любые расхождения между API-интерфейсом selenium2 и selenium3.

Энтон
источник
2
я хотел бы, чтобы это был главный ответ
sudo-nim
1
это помогло мне, спасибо Anthon
ghost21blade
25

На MacOS с уже установленным Homebrew вы можете просто запустить команду Терминал

$ brew install geckodriver

Поскольку homebrew уже продлил действие PATH, нет необходимости изменять скрипты запуска.

roskakori
источник
@roskakori Я сделал это, и он был успешно установлен, но все еще я получаю ту же ошибку
JKC
Это сделало это для меня, спасибо. Использование Firefox 72.0.2 и Selenium 3.141.0
Сэм
17

Чтобы настроить geckodriver для Selenium Python:

Он должен установить путь к geckodriver с помощью FirefoxDriver, как показано ниже:

self.driver = webdriver.Firefox(executable_path = 'D:\Selenium_RiponAlWasim\geckodriver-v0.18.0-win64\geckodriver.exe')

Загрузите geckodriver для вашей подходящей ОС (с https://github.com/mozilla/geckodriver/releases ) -> Извлеките его в папку по вашему выбору -> Установите путь правильно, как указано выше

Я использую Python 3.6.2 и Selenium WebDriver 3.4.3 в Windows 10.

Еще один способ настроить geckodriver:

i) Просто вставьте geckodriver.exe в / Python / Scripts / (в моем случае папка была: C: \ Python36 \ Scripts)
ii) Теперь напишите простой код, как показано ниже:

self.driver = webdriver.Firefox()
Рипон Аль Васим
источник
17

Если вы используете Anaconda , все, что вам нужно сделать, это активировать виртуальную среду, а затем установить geckodriver с помощью следующей команды :

    conda install -c conda-forge geckodriver
Родольфо Альварес
источник
Да, он устанавливает Geckodriver, но ошибка Pycharm остается той же.
WebComer
Привет, я перепробовал много вещей, и это единственное, что сработало для меня :-) спасибо
tezzaaa
12

Ubuntu 18.04+ и новейшая версия geckodriver

Это также должно работать и для других * nix вариантов.

export GV=v0.26.0
wget "https://github.com/mozilla/geckodriver/releases/download/$GV/geckodriver-$GV-linux64.tar.gz"
tar xvzf geckodriver-$GV-linux64.tar.gz 
chmod +x geckodriver
sudo cp geckodriver /usr/local/bin/

Для Mac обновление до:

geckodriver-$GV-macos.tar.gz
jmunsch
источник
12

Я вижу, что дискуссии все еще говорят о старом способе настройки geckodriver путем загрузки бинарного файла и настройки пути вручную.

Это можно сделать автоматически с помощью webdriver-manager

pip install webdriver-manager

Теперь приведенный выше код в вопросе будет работать просто с изменением ниже,

from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
Navarasu
источник
2
Это сработало для меня. Спасибо!
igorkf
Есть ли в Safari или даже в Internet Explorer аналогичный менеджер драйверов?
Mischief_Monkey
11

Самый простой способ для окон!
Загрузите последнюю версию geckodriverот сюда . Добавьте файл geckodriver.exe в каталог python (или любой другой каталог, который уже есть PATH). Это должно решить проблему (протестировано на Windows 10)

Jalles10
источник
Разве Windows не худшее. Спасибо за быстрое решение.
решено с
Это, безусловно, самое простое решение! Не нужно даже перезагрузить компьютер!
Оленский
8

Шаги для MAC:

Простое решение - загрузить GeckoDriver и добавить его в системный PATH. Вы можете использовать любой из двух подходов:

Краткий метод:

1) Скачайте и распакуйте Geckodriver .

2) Укажите путь при инициализации драйвера:

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

Длинный метод:

1) Скачайте и распакуйте Geckodriver .

2) Открыто .bash_profile. Если вы еще не создали его, то вы можете сделать это с помощью команды: touch ~/.bash_profile. Затем откройте его, используя:open ~/.bash_profile

3) Учитывая, что файл GeckoDriver присутствует в папке «Загрузки», вы можете добавить в .bash_profileфайл следующие строки :

PATH="/Users/<your-name>/Downloads/geckodriver:$PATH"
export PATH

Этим вы добавляете путь к GeckoDriver к вашей системной переменной PATH. Это сообщает системе, где находится GeckoDriver при выполнении ваших скриптов Selenium.

4) Сохраните .bash_profileи заставьте его выполнить. Это загружает значения сразу, без перезагрузки. Для этого вы можете запустить следующую команду:

source ~/.bash_profile

5) Вот и все. Вы сделали!. Вы можете запустить скрипт Python сейчас.

Уманг Сардесай
источник
1
Я смог скачать geckodriverс Homebrew: brew install geckodriverи затем driver = webdriver.Firefox(executable_path="/usr/local/bin/geckodriver")
запустить
7

Некоторые дополнительные материалы для будущих читателей этой темы:

В качестве разрешения для Windows 7, Python 3.6, selenium 3.11 достаточно:

Примечание @ dsalaj в этой теме ранее для Unix применимо и к Windows; возиться с ПУТЬ env. переменной на уровне Windows и перезапуска системы Windows можно избежать.

(1) Загрузите geckodriver (как описано в этой теме ранее) и поместите (разархивированный) geckdriver.exe в X: \ Folder \ of \ your \ choice

(2) Пример кода Python:

import os;
os.environ["PATH"] += os.pathsep + r'X:\Folder\of\your\choice';

from selenium import webdriver;
browser = webdriver.Firefox();
browser.get('http://localhost:8000')
assert 'Django' in browser.title

Примечания: (1) Приведенному выше коду может потребоваться около 10 секунд, чтобы открыть браузер Firefox для указанного URL.
(2) Консоль python будет отображать следующую ошибку, если на указанном URL-адресе еще не запущен сервер или не выполняется страница с заголовком, содержащим строку 'Django': selenium.common.exceptions.WebDriverException: Сообщение: достигнутая страница ошибки: about : neterror е = connectionFailure & и = HTTP% 3A // локальный% 3A8000 / & с = UTF-8 & F = & регулярные д = Firefox% 20can% E2% 80% 9

Снидхи Софпро
источник
Спасибо, я попробовал все другие решения, но только ваше работало на моей Windows!
PSO
4

Я на самом деле обнаружил, что вы можете использовать последний geckodriver, не помещая его в системный путь. В настоящее время я использую

https://github.com/mozilla/geckodriver/releases/download/v0.12.0/geckodriver-v0.12.0-win64.zip

Firefox 50.1.0

Python 3.5.2

Селен 3.0.2

Windows 10

Я использую VirtualEnv (которым я управляю с помощью PyCharm, я полагаю, он использует Pip для установки всего)

В следующем коде я могу использовать конкретный путь для geckodriver с использованием параметра executetable_path (я обнаружил это, посмотрев в Lib \ site-packages \ selenium \ webdriver \ firefox \ webdriver.py). Примечание. У меня есть подозрение, что важен порядок аргументов параметров при вызове веб-драйвера, поэтому в моем коде последний исполняемый путь - путь к файлу executetable_path (2-я последняя строка справа)

Вы также можете заметить, что я использую собственный профиль Firefox, чтобы обойти проблему sec_error_unknown_issuer, с которой вы столкнетесь, если у тестируемого сайта есть ненадежный сертификат. см. Как отключить предупреждение о ненадежном подключении Firefox с помощью Selenium?

После расследования было установлено, что драйвер Marionette является неполным и все еще выполняется, и никакие настройки различных возможностей или параметров профиля для отклонения или установки сертификатов не сработали. Так что было проще использовать пользовательский профиль.

В любом случае, вот код того, как я заставил работать geckodriver, не находясь в пути:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True

#you probably don't need the next 3 lines they don't seem to work anyway
firefox_capabilities['handleAlerts'] = True
firefox_capabilities['acceptSslCerts'] = True
firefox_capabilities['acceptInsecureCerts'] = True

#In the next line I'm using a specific FireFox profile because
# I wanted to get around the sec_error_unknown_issuer problems with the new Firefox and Marionette driver
# I create a FireFox profile where I had already made an exception for the site I'm testing
# see https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles#w_starting-the-profile-manager

ffProfilePath = 'D:\Work\PyTestFramework\FirefoxSeleniumProfile'
profile = webdriver.FirefoxProfile(profile_directory=ffProfilePath)
geckoPath = 'D:\Work\PyTestFramework\geckodriver.exe'
browser = webdriver.Firefox(firefox_profile=profile, capabilities=firefox_capabilities, executable_path=geckoPath)
browser.get('http://stackoverflow.com')
Roochiedoor
источник
Я получил SyntaxError: (ошибка Юникода) кодек unicodeescape не может декодировать байты ... И мне нужно изменить путь геккона на epath = r'C: \ Users \ step_ \ Documents \ mtg_buyer \ geckodrivers \ geckodriver.exe '. Может быть, причина в том, что я использую китайский Windows 10?
Endle_Zhenbo
3

Я использую Windows 10, и это сработало для меня:

  1. Загрузите geckodriver здесь . Загрузите правильную версию для компьютера, который вы используете
  2. Разархивируйте файл, который вы только что скачали, и вырезайте / копируйте файл .exe, который он содержит
  3. Перейдите к C: {ваша корневая папка python}. Мой был C: \ Python27. Вставьте файл geckodriver.exe в эту папку.
  4. Перезапустите среду разработки.
  5. Попробуйте запустить код еще раз, он должен работать сейчас.
Эдгар Н
источник
Спасибо, что упомянули, что вам нужно перезапустить среду разработки.
Deep
3

Подумайте об установке Firefox в контейнере:

docker pull selenium/standalone-firefox
docker run --rm -d -p 5555:4444 --shm-size=2g selenium/standalone-firefox

Подключение с помощью webdriver.Remote:

driver = webdriver.Remote('http://localhost:5555/wd/hub', DesiredCapabilities.FIREFOX)
driver.set_window_size(1280, 1024)
driver.get('https://toolbox.googleapps.com/apps/browserinfo/')
driver.save_screenshot('info.png')
Макс Малыш
источник
2

Очень печально, что ни одна из книг, опубликованных на Selenium / Python, и большинство комментариев по этому вопросу через Google не дают четкого объяснения логике пути для настройки этого на Mac (все это Windows !!!!). Все тубы пикапа на «после», у вас есть настройка пути (на мой взгляд, дешевый выход!). Итак, для вас, замечательных пользователей Mac, используйте следующее для редактирования файлов пути bash:

> $ touch ~ / .bash_profile; открыть ~ / .bash_profile

Затем добавьте путь примерно так ... * # Установка PATH для geckodriver PATH = «/ usr / bin / geckodriver: $ {PATH}» export PATH

Настройка PATH для Selenium Firefox

PATH = «~ / Users / yourNamePATH / VEnvPythonInterpreter / lib / python2.7 / site-packages / selenium / webdriver / firefox /: $ {PATH}» экспортировать PATH

Установка PATH для исполняемого файла в драйвере Firefox

PATH = «/ Users / yournamePATH / VEnvPythonInterpreter / lib / python2.7 / site-packages / selenium / webdriver / common / service.py: $ {PATH}» экспорт PATH *

Это сработало для меня. Меня беспокоит, когда сообщество Selenium Windows начнет играть в настоящую игру и включит нас, пользователей Mac, в свое высокомерное членство в клубе.

JustASteve
источник
2

Selenium отвечает на этот вопрос в своем DESCRIPTION.rst

Drivers
=======

Selenium requires a driver to interface with the chosen browser. Firefox,
for example, requires `geckodriver <https://github.com/mozilla/geckodriver/releases>`_, which needs to be installed before the below examples can be run. Make sure it's in your `PATH`, e. g., place it in `/usr/bin` or `/usr/local/bin`.

Failure to observe this step will give you an error `selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

Просто скачайте geckodriver, распакуйте его и переместите исполняемый файл в папку / usr / bin

Питер Грэм
источник
Эта цитата содержит указания, которые работали на Linux Mint 18.
Эллиот Роберт
2

Для пользователей Windows

используйте оригинальный код как:

from selenium import webdriver
browser = webdriver.Firefox()
driver.get("https://www.google.com")

затем загрузите драйвер с: mozilla / geckodriver

Поместите это в фиксированный путь (навсегда) .. как пример, я поместил это в:

C: \ Python35

Затем перейдите к переменным среды системы, в сетке «Системные переменные» найдите переменную Path и добавьте:

; C: \ Python35 \ geckodriver

geckodriver, а не geckodriver.exe .

Гханем
источник
geckodriver, а не geckodriver.exe.
Саурабх Чандра Патель
1

На Raspberry Pi мне пришлось создать из драйвера ARM и установить geckodriver и путь входа в систему:

sudo nano /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py

def __init__(self, firefox_profile=None, firefox_binary=None,
             timeout=30, capabilities=None, proxy=None,
             executable_path="/PATH/gecko/geckodriver",                     
firefox_options=None,
             log_path="/PATH/geckodriver.log"):
Натан Гисволд
источник
1

Если вы используете виртуальную среду и win10 (возможно, для других систем), вам просто нужно поместить geckodriver.exe в следующую папку в каталоге вашей виртуальной среды:

... \ my_virtual_env_directory \ Scripts \ geckodriver.exe

домашнее животное
источник
1
from webdriverdownloader import GeckoDriverDownloader # vs ChromeDriverDownloader vs OperaChromiumDriverDownloader
gdd = GeckoDriverDownloader()
gdd.download_and_install()
#gdd.download_and_install("v0.19.0")

это даст вам путь к вашему gekodriver.exe на окнах

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'C:\\Users\\username\\\bin\\geckodriver.exe')
driver.get('https://www.amazon.com/')
По закону
источник
0

Mac 10.12.1 python 2.7.10 это работа для меня :)

def download(url):
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
browser = webdriver.Firefox(capabilities=firefox_capabilities,
                            executable_path=r'/Users/Do01/Documents/crawler-env/geckodriver')
browser.get(url)
return browser.page_source
DO01
источник
0

Я использую Windows 10 и Anaconda2. Я попытался установить системную переменную пути, но не получилось. Затем я просто добавил файл geckodriver.exe в папку Anaconda2 / Scripts, и теперь все работает отлично. Для меня путь был: -

C: \ Users \ Бхавайя \ Anaconda2 \ Scripts

Бхавья Гхай
источник
0

Если вы хотите добавить пути к драйверам в Windows 10:

  1. Щелкните правой кнопкой мыши значок «Этот компьютер» и выберите «Свойства» введите описание изображения здесь

  2. Нажмите «Расширенные настройки системы»

  3. Нажмите «Переменные среды» в нижней части экрана.
  4. В разделе «Пользовательские переменные» выделите «Путь» и нажмите «Изменить».
  5. Добавьте пути к вашим переменным, нажав «Новый» и введя путь для добавляемого вами драйвера и нажав клавишу ввода.
  6. Когда вы закончите вводить путь, нажмите «ОК».
  7. Продолжайте нажимать «ОК», пока не закроете все экраны
Расс Томас
источник
0
  1. убедитесь, что у вас правильная версия драйвера (geckodriver), x86 или 64.
  2. убедитесь, что вы проверяете правильную среду, например, задание выполняется в Docker, тогда как проверяется среда среды, в которой находится ОС
жировик
источник
0

для меня было достаточно просто установить geckodriver в той же среде:

$ brew install geckodriver

и код не изменился:

from selenium import webdriver
browser = webdriver.Firefox()
Олеся М
источник
0

Чтобы добавить мои 5 центов, также можно сделать echo PATH(Linux) и просто переместить geckodriver в папку по своему вкусу. Если системная (не виртуальная среда) папка является целью, драйвер становится глобально доступным.

Aramakus
источник