Как установить geckodriver windows
Я новичок в программировании и начал с 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
Ниже мы приводим примеры более "правильной" установки драйвера, но есть и более быстрый способ. Примените данный метод в двух случаях.
- Вам нужны разные версии geckodriver.
- У вас не получилось ничего из того, что мы предлагаем ниже под каждую операционную систему.
Инструкция установки
Если у вас Linux дистрибутив или Mac, вам нужно дать файлу geckodriver нужные права на выполнения. Открываем терминал и вводим команды одна за другой.
Теперь, когда вы будете запускать код в Python, вы должны указать Selenium на этот файл.
driver = webdriver . Firefox ( '/путь/до/драйвера/geckodriver' )Для Windows
Минусы такого подхода
- Нужно помнить где у вас лежит geckodriver;
- Нужно не забывать указывать в конструктор класса 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. Такое бывает.
- Нажимаем клавишу ESC
- Вводим символы :wq
- 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.
- Нужно установить сам язык Ruby. Для этого идем сюда и ставим RubyInstaller. Я выбрал самый последний релиз (RubyInstaller 2.5.1-2) c пакетом DevKit. Через этот настроечный пакет можно запускать тесты из консольки, как в Linux, а также гибко управлять гемами.
- Пакет RubyInstaller установлен и мы переходим к настройке.
В случае если мы хотим создать проект новый, то открываем RubyMine и создаем пустой проект, указав установленный Ruby.
Также, здесь нужно упомянуть вопрос версионности Firefox.
Если у Вас установлен Firefox версии 46 или ниже, то для корректного запуска тестов нужен gem 'capybara' версии '2.53.4' или ниже.
Если Firefox версии выше 46 — то он работает по другим принципам на основе «geckodriver» и поэтому для корректного запуска тестиков нужно установить geckodriver.
До версии 47 версии драйвер автоматизации Firefox был всего лишь расширением, которое включалось в каждый клиент. Но это расширение было удалено из-за изменения политики, требющей теперь, чтобы все расширения подписывались Mozilla.
Marionette — это новый драйвер, который поставляется вместе с Firefox. У этого драйвера есть собственный протокол, который несовместим с протоколом Selenium/WebDriver.
Geckodriver — это сервер приложений, реализующий протокол Selenium/WebDriver. Он переводит команды Selenium и перенаправляет их в драйвер Marionette.
Читайте также: