Как установить geckodriver windows

Обновлено: 03.07.2024

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

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

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

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

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

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

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

эти шаги решены для меня на ubuntu firefox 50.

копировать geckodriver в /usr/local / bin

вам не нужно добавлять

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

ответ @saurabh решает проблему, но не объясняет, почему автоматизировать скучные вещи с Python не включает эти шаги.

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

на последняя версия в селене 2.серия X-это 2.53.6 (см. E.г это ответы, для более удобного просмотра версий).

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

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

на macOS с доморощенного уже установлен, вы можете просто выполнить команду терминала

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

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

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

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

другой способ настроить geckodriver:

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

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

Короткое Способ:

2) укажите путь при запуске драйвера:

Долгий Способ:

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

/.bash_profile . Затем откройте его, используя: open

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

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

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

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

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

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

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

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

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

в любом случае вот код о том, как я получил geckodriver для работы, не будучи в пути:

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

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

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

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

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

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

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

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

/Users/yourNamePATH/VEnvPythonInterpreter/lib/python2.7/site-packages/selenium/webdriver/firefox/:$" путь экспорта

PATH="/Users/yournamePATH/VEnvPythonInterpreter/lib/python2.7/site-packages/selenium/webdriver/common/service.py:$" путь экспорта*

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

самый простой способ для Windows!
Я только что загрузил последнюю версию geckodriver (у меня есть win10) из здесь и добавил:geckodriver.exe файл в каталоге python C:\Users\my.name (который уже в пути) У меня получилось!

Selenium отвечает на этот вопрос в своем описании.первый

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


Firefox до 46 версии поставляется с поддержкой WebDriver. Geckodriver требуется для Firefox выше 47+ версии. Нужно установить geckodriver отдельно от браузера.

Зайдите на github страницу с релизами чтобы выбрать нужный вам файл для скачивания в зависимости от вашей операционной системы и версии браузера Firefox.

На текущий момент, актуальная версия geckodriver является v0.26.0.

Установка geckodriver под Ubuntu, Windows и Mac

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

  1. Вам нужны разные версии geckodriver.
  2. У вас не получилось ничего из того, что мы предлагаем ниже под каждую операционную систему.

Инструкция установки

Если у вас Linux дистрибутив или Mac, вам нужно дать файлу geckodriver нужные права на выполнения. Открываем терминал и вводим команды одна за другой.

Теперь, когда вы будете запускать код в Python, вы должны указать Selenium на этот файл.

driver = webdriver . Firefox ( '/путь/до/драйвера/geckodriver' )

Для Windows

Минусы такого подхода

  1. Нужно помнить где у вас лежит geckodriver;
  2. Нужно не забывать указывать в конструктор класса webdriver.Firefox путь к драйверу.

Установка geckodriver в Ubuntu, Debian и ArchLinux

Выбираем (в зависимости от архитектуры процессора x32 или x64) нужный tar архив. В моем случае будет файл geckodriver-v0.26.0-linux64.tar.gz у меня Ubuntu 18.04.3 LTS.

Вытаскиваем файл из архива.

Даем нужные права драйверу.

Отправляем драйвер в папку где его будет искать Selenium.

Установка geckodriver в Mac OS

Пожалуй, самая простая установка в Mac. Выполняем в терминале:

Проблема такого подхода в том, что может быть старая версия. Для новой версии смотрите на страницу github с релизами и скачиваем архив geckodriver-v0.26.0-macos.tar.gz.

Заходим через терминал в папку где будет лежать архив и сам драйвер.

Даем драйверу права на выполнения.

/.bashrc" с помощью VIM или NANO.

Добавляем в конец файла следующие строки. ВНИМАНИЕ! Заменяем "/your/path/" указывая реальный путь к geckodriver файлу.

Возможно вы не поймете как выйти из VIM. Такое бывает.

  1. Нажимаем клавишу ESC
  2. Вводим символы :wq
  3. Enter

Теперь у вас будет последняя версия geckodriver на вашем новеньком маке.

Установка geckodriver в Windows

Windows пользователи возможно не слышали о таким виде архивов как tar.gz это нормально. Скачиваем и устанавливаем программу 7-Zip.


Скрипт теста ниже откроет веб-сайт в новом окне Firefox.

Термин Gecko обозначает движок веб-браузера, встроенный в браузер Mozilla Firefox. Драйвер Gecko действует как прокси между клиентами с поддержкой Web Driver (Eclipse, Netbeans и т. Д.) И браузером Mozilla Firefox. Короче говоря, драйвер Gecko служит связующим звеном между тестами Selenium Web Driver и браузером Mozilla Firefox.

До Selenium 3 браузер Mozilla Firefox был браузером по умолчанию для Selenium. После Selenium 3 тестировщики должны инициализировать скрипт для явного использования Firefox с использованием GeckoDriver. Selenium использует протокол W3C Webdriver для отправки запросов в GeckoDriver, который переводит их в протокол с именем Marionette. Firefox поймет команды, передаваемые в форме протокола Marionette, и выполнит их.


Преимущество использования драйвера Gecko

Загрузите и установите драйвер Gecko:

Драйвер Gecko доступен в виде исполняемого файла, который можно загрузить в систему. Ниже приведен список шагов для загрузки драйвера геккона.


Шаг 2) После завершения загрузки ZIP-файла извлеките содержимое ZIP-файла в папку с файлом


Шаг 3) Запишите место, где вы извлекли драйвер. Местоположение будет использоваться позже для создания экземпляра драйвера.


Способы инициализации GeckoDriver:

Существует три разных способа инициализации GeckoDriver.

1. Использование DesiredCapabilities:

Сначала установите системное свойство для Gecko Driver.

Затем установите желаемые возможности.

Желаемые возможности помогают Selenium понимать имя браузера, версию и операционную систему для выполнения автоматических тестов. Ниже приведен код для установки драйвера геккона с использованием класса DesiredCapabilities.

2. Используя свойство марионеток:

Драйвер Gecko также можно инициализировать с помощью свойства марионетки, как показано ниже

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

3. Использование FirefoxOptions:

Mozilla Firefox версии 47+ имеет устаревшую систему управления марионетками. Воспользовавшись этим, драйвер марионетки можно вызвать с помощью параметров Firefox, как показано ниже

Код для запуска Firefox с использованием драйвера Gecko:

@ Перед методом:

Изначально нам нужно установить системное свойство для драйвера gecko в место загрузки файла geckdriver.exe. Нам нужно установить для свойства marionette значение true, чтобы Selenium использовал протокол Marionette для связи с Gecko Driver. Наконец, нам нужно запустить экземпляр браузера Firefox, используя объект для желаемых возможностей.

Приведенные ниже утверждения помогают решить вышеуказанную задачу.

@Метод испытания:

Мы перемещаемся по указанному пользователем URL-адресу, используя встроенный метод «get», предоставляемый веб-драйвером Selenium. Приведенное ниже утверждение поможет добиться того же.

Метод @After:

Наконец, мы закрываем экземпляр браузера, используя метод quit.

Измените скрипт для не Gecko в Gecko:

Сценарий драйвера не-геккона, который использовался до Selenium 3, был простым. Нам нужно создать экземпляр драйвера Firefox и использовать переменную экземпляра.

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

Распространенные исключения произошли при использовании драйвера Gecko:

Ниже приведен список распространенных исключений, возникающих при использовании драйвера Gecko и с разрешением.

1. Путь к исполняемому файлу драйвера должен быть установлен системным свойством webdriver.gecko.driver:

Это исключение возникает, когда пользователь пытается создать экземпляр драйвера Firefox без установки системного свойства для драйвера геккона. Обычно это делают новички в Selenium, которые не знают об изменениях, внесенных из Selenium 3 в Selenium в предыдущих версиях.

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

Обратите внимание, что вам нужно установить свойство драйвера gecko перед созданием экземпляра драйвера Mozilla Firefox.

2. Firefox Not Connected Исключение:

Это исключение обычно возникает, когда версия Firefox была обновлена ​​до последней версии. Решение для этого исключения заключается в обновлении файла jar селена и драйвера геккона до последней версии и их использование.

3. Сессия не создана Исключение:

Это исключение происходит из-за проблем совместимости между Selenium и драйвером Gecko. Драйвер Gecko работает с Firefox версии 47 или выше. Это может быть решено путем обновления версии Firefox до 47 или выше.

4. Исключение соединения отклонено:

Статья рассчитана на знакомоство с автотестированием и разверткой среды в Windows 10 и предназначена для тех, кто хоть чуть — чуть знает о Cucumber + Capybara + Selenium-webdriver. Идея для статьи появилась из-за различий в разворачивании окружения на Windows 10 и Linux.


Пару слов о gem-ах (библиотеках) Cucumber + Capybara + Selenium-webdriver, которые нужны для запуска и наполнения проверками UI тесты.

Cucumber

Сucumber — гем, позволяющий писать тесты на человеческом языке. Для этого используется нотация Gherkin, которая определяет структуру и правила написания сценариев. Подробно почитать можно тут


Capybara

Capybara — гем, позволяющий искать/кликать/… по элементам браузера. Т.е. представляет собой связующее звено между Cucumber шагами (steps) теста, и webdriver-ом (экземпляр вызываемого браузера). Здесь можно глянуть методы этого гема.

Selenium-webdriver


Selenium-webdriver — это инструмент для автоматизации действий веб-браузера. По сути это есть экзмеплял (инстанс) браузера.

Предварительные действия

Для удобства демонстрации будем использовать RubyMine. Можно скачать пробную версию на 30 дней.

Скачиваем Firefox и Хром для запуска тестов.

Скачиваем и устанавливаем Git (система управления версиями или аналоичная VCS, оффициальный сайт). Но Git нужен когда у Вас уже есть проект или вы хотите хранить свой код в Git системе.

Итак, начнем

У нас уже есть установленный RubyMine.

  1. Нужно установить сам язык Ruby. Для этого идем сюда и ставим RubyInstaller. Я выбрал самый последний релиз (RubyInstaller 2.5.1-2) c пакетом DevKit. Через этот настроечный пакет можно запускать тесты из консольки, как в Linux, а также гибко управлять гемами.
  2. Пакет RubyInstaller установлен и мы переходим к настройке.
    В случае если мы хотим создать проект новый, то открываем RubyMine и создаем пустой проект, указав установленный Ruby.



Вот содержимое нашего гемфайла, с самыми основными гемами для UI тестов

Также, здесь нужно упомянуть вопрос версионности Firefox.
Если у Вас установлен Firefox версии 46 или ниже, то для корректного запуска тестов нужен gem 'capybara' версии '2.53.4' или ниже.

Если Firefox версии выше 46 — то он работает по другим принципам на основе «geckodriver» и поэтому для корректного запуска тестиков нужно установить geckodriver.

До версии 47 версии драйвер автоматизации Firefox был всего лишь расширением, которое включалось в каждый клиент. Но это расширение было удалено из-за изменения политики, требющей теперь, чтобы все расширения подписывались Mozilla.

Marionette — это новый драйвер, который поставляется вместе с Firefox. У этого драйвера есть собственный протокол, который несовместим с протоколом Selenium/WebDriver.

Geckodriver — это сервер приложений, реализующий протокол Selenium/WebDriver. Он переводит команды Selenium и перенаправляет их в драйвер Marionette.

Читайте также: