Селен

Использование Selenium с драйвером Firefox

Использование Selenium с драйвером Firefox
Selenium - отличный инструмент для тестирования браузеров, веб-автоматизации и веб-парсинга. Selenium может управлять большинством современных веб-браузеров. я.е., Firefox, Chrome, Chromium, Opera, Apple Safari. Для управления браузером Selenium нужен инструмент, называемый веб-драйвером. Большинство поставщиков современных браузеров предоставляют программное обеспечение веб-драйверов для своих веб-браузеров.

Чтобы управлять веб-браузером Mozilla Firefox из Selenium, вы должны использовать веб-драйвер Gecko.

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

Предпосылки:

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

1) Дистрибутив Linux (желательно Ubuntu), установленный на вашем компьютере.
2) Python 3 установлен на вашем компьютере.
3) PIP 3 установлен на вашем компьютере.
4) Mozilla Firefox установлен на вашем компьютере.

Вы можете найти множество статей по этим темам на LinuxHint.ком. Обязательно ознакомьтесь с ними, если вам нужна помощь.

Подготовка виртуальной среды Python 3 для проекта:

Виртуальная среда Python используется для создания изолированного каталога проекта Python. Модули Python, которые вы устанавливаете с помощью PIP, будут установлены только в каталоге проекта, а не глобально.

Python virtualenv модуль используется для управления виртуальными средами Python.

Вы можете установить Python virtualenv модуль глобально с использованием PIP 3 следующим образом:

$ sudo pip3 установить virtualenv

Python virtualenv должен быть установлен.

Создать каталог проекта селен-firefox / в вашем текущем рабочем каталоге следующим образом:

$ mkdir -pv selenium-firefox / драйверы

Перейдите в каталог только что созданного проекта селен-firefox / следующим образом:

$ cd селен-firefox /

Создайте виртуальную среду Python в каталоге вашего проекта с помощью следующей команды:

$ virtualenv .Venv

Виртуальная среда Python должна быть создана в каталоге вашего проекта.

Активируйте виртуальную среду Python из каталога вашего проекта с помощью следующей команды:

$ источник .env / bin / активировать

Установка библиотеки Selenium Python:

Библиотека Selenium доступна в официальном репозитории Python PyPI.

Вы можете установить библиотеку Selenium Python с помощью PIP 3 следующим образом:

$ pip3 установить селен

Должна быть установлена ​​библиотека Selenium Python.

Установка драйвера Firefox Gecko:

Чтобы загрузить драйвер Firefox Gecko, посетите страницу выпусков mozilla / geckodriver на GitHub в своем любимом веб-браузере.

Как видите, v0.26 год.0 - последняя версия драйвера Firefox Gecko на момент написания этой статьи.

Чтобы загрузить драйвер Firefox Gecko, прокрутите немного вниз и щелкните файл Linux geckodriver tar.gz-архив в зависимости от архитектуры вашей операционной системы.

Если вы используете 32-разрядную операционную систему, щелкните значок geckodriver-v0.26 год.0-linux32.деготь.gz ссылка на сайт.

Если вы используете 64-битную операционную систему, щелкните значок geckodriver-v0.26 год.0-linuxx64.деготь.gz ссылка на сайт.

Я скачаю 64-битную версию драйвера Firefox Gecko.

Ваш браузер должен предложить вам сохранить архив. Выбирать Сохранить файл и нажмите на ОК.

Необходимо загрузить драйвер Firefox Gecko.

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

Вы можете извлечь geckodriver-v0.26 год.0-linux64.деготь.gz архив из ~ / Загрузки каталог в драйверы / каталог вашего проекта с помощью следующей команды:

$ tar -xzf ~ / Загрузки / geckodriver-v0.26 год.0-linux64.деготь.gz -C драйверы /

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

Начало работы с Selenium с использованием драйвера Firefox Gecko:

В этом разделе я покажу вам, как настроить ваш самый первый скрипт Selenium Python, чтобы проверить, работает ли драйвер Firefox Gecko.

Сначала создайте новый скрипт Python ex00.ру в каталоге вашего проекта и введите в нем следующие строки.

из selenium import webdriver
из селена.webdriver.общий.ключи импорт Ключи
браузер = веб-драйвер.Firefox (исполняемый_путь = "./ drivers / geckodriver ")
браузер.get ('https: // www.linuxhint.com ')
print ('Заголовок:% s'% browser.заглавие)
браузер.покидать()

Как только вы закончите, сохраните ex00.ру Скрипт Python.

Строки 1 и 2 импортируют все необходимые компоненты из селен Библиотека Python.

Строка 4 создает объект веб-драйвера Firefox с использованием webdriver.Fire Fox() метод и сохраняет его в браузер Переменная. В исполняемый_путь аргумент используется, чтобы указать веб-драйверу, где искать двоичный файл драйвера Firefox Gecko. В этом случае геккодрайвер двоичный из драйверы / каталог проекта.

На строке 6, браузер.получать() метод загружается linuxhint.ком в веб-браузере Firefox.

Как только веб-сайт завершает загрузку, в строке 7 печатается название веб-сайта, здесь, браузер.заглавие свойство используется для доступа к заголовку веб-сайта.

Строка 8 закрывает веб-браузер Firefox с помощью браузер.покидать() метод.

Вы можете запустить скрипт Python ex00.ру с помощью следующей команды:

$ python3 ex00.ру

Selenium должен открыть веб-браузер Firefox и посетить linuxhint.com веб-сайт автоматически.

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

Итак, Selenium корректно работает с драйвером Firefox Gecko.

Пример 01: Запуск Firefox в режиме Headless с использованием Selenium

Вы также можете запустить Selenium с драйвером Firefox Gecko в автономном режиме. Безголовый режим Selenium Firefox не требует установки графического пользовательского интерфейса на вашем компьютере. Таким образом, вы сможете запускать Selenium Firefox на любых безголовых серверах Linux.

Сначала создайте новый скрипт Python ex01.ру в каталоге вашего проекта и введите в нем следующие строки кодов.

из selenium import webdriver
из селена.webdriver.Fire Fox.параметры импорта Параметры
из селена.webdriver.общий.ключи импорт Ключи
firefoxOptions = Параметры ()
firefoxOptions.add_argument ("- без головы")
браузер = веб-драйвер.Firefox (исполняемый_путь = "./ drivers / geckodriver ", options = firefoxOptions)
браузер.get ('https: // www.linuxhint.com ')
print ('Заголовок:% s'% browser.заглавие)
браузер.покидать()

Как только вы закончите, сохраните ex01.ру Скрипт Python.

Строки 1 и 3 такие же, как строки 1 и 2 в ex00.ру Скрипт Python.

Строка 2 импортирует Firefox Параметры от селен библиотека.

Строка 5 создает объект параметров firefox и сохраняет его в папке firefoxOptions Переменная.

В строке 6 используется firefoxOptions.add_argument () метод добавления -Обезглавленный Флаг командной строки Firefox для firefoxOptions объект.

На строке 8, параметры аргумент используется для передачи firefoxOptions при инициализации веб-драйвера Firefox с помощью webdriver.Fire Fox() метод.

Остальные строки ex01.ру сценарий такой же, как и ex00.ру.

Вы можете запустить скрипт Python ex01.ру с помощью следующей команды:

$ python3 ex01.ру

Как видите, заголовок сайта (linuxhint.com) печатается на консоли без открытия какой-либо графической версии веб-браузера Firefox.

Как видите, Selenium также работает в автономной среде Ubuntu, где у меня не установлен графический пользовательский интерфейс.

Теперь, когда вы знаете, как пройти -Обезглавленный Флаг / параметр командной строки Firefox с использованием драйвера Selenium Firefox Gecko, вы также можете передать любые другие флаги / параметры командной строки Firefox.

Вы можете найти все поддерживаемые флаги / параметры командной строки Firefox в параметрах командной строки - Mozilla | Страница MDN.

Пример 02: Извлечение Lorem Ipsum с использованием селена

В этом разделе я покажу вам, как выполнить базовую очистку веб-страниц с помощью драйвера Selenium Firefox Gecko.

Сначала посетите страницу генератора Lorem Ipsum в веб-браузере Firefox. Как видите, на странице сгенерировано 5 случайных абзацев. Давайте извлечем весь сгенерированный текст (все 5 абзацев) с этой страницы.

Прежде чем вы начнете извлекать информацию с веб-страницы, вы должны знать HTML-структуру содержимого веб-страницы.

Вы можете легко найти HTML-структуру содержимого, которое хотите извлечь, используя Инструмент разработчика Firefox. Открыть Инструмент разработчика Firefox, нажмите правую кнопку мыши (ПКМ) на странице и нажмите Осмотрите элемент (Q).

Инструмент разработчика Firefox должен быть открыт. Нажми на Значок проверки () как отмечено на скриншоте ниже.

Наведите курсор на первый абзац, как показано на скриншоте ниже. Затем нажмите левую кнопку мыши (ЛКМ), чтобы выбрать его.

HTML-структура абзацев должна отображаться в Осмотреть вкладка Инструмент разработчика Firefox. Как видите, сгенерированные абзацы lorem ipsum находятся внутри div тег, имеющий я бы Lipum.

Чтобы извлечь абзацы lorem ipsum с помощью драйвера Selenium Firefox Gecko, создайте новый скрипт Python ex02.ру в каталоге вашего проекта и введите в нем следующие строки кодов.

из selenium import webdriver
из селена.webdriver.Fire Fox.параметры импорта Параметры
из селена.webdriver.общий.ключи импорт Ключи
firefoxOptions = Параметры ()
firefoxOptions.add_argument ("- без головы")
браузер = веб-драйвер.Firefox (исполняемый_путь = "./ drivers / geckodriver ", options = firefoxOptions)
браузер.get ('https: // www.Lipum.com / feed / html ')
lipsum = браузер.find_element_by_id ('lipsum')
печать (lipsum.текст)
браузер.покидать()

Как только вы закончите, сохраните ex02.ру Скрипт Python.

Строка 10 загружает страницу генератора lorem ipsum с помощью браузер.получать() метод.

Содержимое lorem ipsum находится внутри div тег с идентификатором Lipum. В строке 12 используется браузер.find_element_by_id () метод, чтобы выбрать его на веб-странице и сохранить в Lipum Переменная.

Строка 13 выводит на консоль сгенерированное содержимое lorem ipsum. Здесь текст свойство используется для доступа к содержимому div элемент с идентификатором Lipum.

Теперь запустите скрипт Python ex02.ру следующим образом:

$ python3 ex02.ру

Как видите, Selenium правильно извлек содержимое lorem ipsum с веб-страницы.

Запуск скрипта Python ex02.ру снова даст вам другой результат, как вы можете видеть на скриншоте ниже.

Пример 03: Извлечение данных списка с помощью Selenium

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

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

Чтобы узнать HTML-структуру списка, вам нужно открыть Инструмент разработчика Firefox. Для этого нажмите правую кнопку мыши (ПКМ) на странице и нажмите Осмотрите элемент (Q).

Инструмент разработчика Firefox должен быть открыт. Нажми на Значок проверки () как отмечено на скриншоте ниже.

Затем наведите указатель мыши на список Случайные имена. Список должен быть выделен, как показано на скриншоте ниже. Затем нажмите левую кнопку мыши (ЛКМ), чтобы выбрать список.

HTML-код списка должен быть выделен в Инспектор вкладка Инструмент разработчика Firefox. Здесь список случайных имен находится внутри div элемент. В div элемент имеет класс название полученные результаты. Внутри него есть ол элемент с класс название список имен. Внутри ол элемент, каждое из имен находится в Ли элемент.

Исходя из этого, можно сказать, что чтобы добраться до Ли теги, мы должны следовать div.результаты> ол.nameList> li

Итак, наш селектор CSS будет div.результаты ол.nameList li (просто замените > знаки с пробелом)

Для извлечения этих случайных имен создайте новый скрипт Python ex03.ру и введите в нем следующие строки кода.

из selenium import webdriver
из селена.webdriver.Fire Fox.параметры импорта Параметры
из селена.webdriver.общий.ключи импорт Ключи
firefoxOptions = Параметры ()
firefoxOptions.add_argument ("- без головы")
браузер = веб-драйвер.Firefox (исполняемый_путь = "./ drivers / geckodriver ", options = firefoxOptions)
браузер.get ("http: // генератор случайных имен.Информация/")
nameList = браузер.find_elements_by_css_selector ('div.результаты ол.nameList li ')
для имени в nameList:
печать (имя.текст)
браузер.покидать()

Как только вы закончите, сохраните ex03.ру Скрипт Python.

Строка 10 загружает веб-сайт генератора случайных имен с помощью браузер.получать() метод.

Строка 11 выбирает список имен с помощью браузер.find_elements_by_css_selector () метод. Этот метод использует селектор CSS div.результаты ол.nameList li найти список имен. Затем список имен сохраняется в список имен Переменная.

В строках 13 и 14 a для цикл используется для перебора список имен Список Ли элементы. На каждой итерации содержимое Ли элемент напечатан на консоли.

Теперь запустите скрипт Python ex03.ру следующим образом:

$ python3 ex03.ру

Как видите, скрипт Python ex03.ру получил все случайные имена с веб-страницы.

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

Заключение:

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

Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...
Обзор беспроводной мыши Microsoft Sculpt Touch
Я недавно прочитал о Microsoft Sculpt Touch беспроводная мышь и решил ее купить. Побывав некоторое время, я решил поделиться своим опытом с ним. Эта б...
Экранный трекпад и указатель мыши AppyMouse для планшетов с Windows
Пользователи планшетов часто пропускают указатель мыши, особенно когда они привыкли пользоваться ноутбуками. Смартфоны и планшеты с сенсорным экраном ...