Найти в Дзене
Linux World

Selenium. Автоматизация действий в браузере.

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

Мы будем использовать библиотеку для python3 и браузер Chromium.

Для начала подготовим окружение для работы. Установим сам браузер:

sudo apt install chromium-browser
sudo apt install chromium-browser

Создадим изолированную среду c python3.7 и и пакетом Selenium, другие библиотеки будем устанавливать по ходу надобности.

conda create -n Selenium python=3.7 selenium
conda create -n Selenium python=3.7 selenium

Далее нам нужно установить WebDriver, для этого проверим версию установленного браузера Chromium

-3

Драйвера для браузера Chrome и Chromium:

https://sites.google.com/a/chromium.org/chromedriver/downloads

Edge: https://developer.microsoft.com/en-us/microsoft-edge/tool/webdriver/

Firefox: https://github.com/mozilla/geckodriver/releases

Safari: https://webkit.org/blog/6900/webdriver-support-in-safari-10/

Качаем драйвер который подходит к версии нашего браузера. В моем случае это ChromeDriver 80.0.3987.106

После того как скачается архив с драйвером, нам надо его распаковать и поместить в переменную PATH

-4

После проделанных выше действий все готово к написанию кода.

Напишем скрипт который открывает главную страничку Яндекса, делает поисковый запрос, и открывает первую ссылку по нашему запросу.

Делаем импорты и определяем переменные

-5

Далее, нам нужно указать страницу которую требуется открыть и найти на ней поле для ввода текста поискового запроса. Для этого откроем страницу яндекса, и правой кнопкой мыши кликнем по полю для ввода текста и выберем "Посмотреть код"

-6

Справа откроется код страницы, нас интересует атрибут name, именно по нему мы и будем искать поле ввода в нашем скрипте

-7

Продолжаем писать скрипт

-8

driver.get() - открывает страницу , принимает 1 аргумент URL

S - переменная в которой ищем элемент, можно искть по тегу, тексту, классу, css, xpath

s.send_keys - имитируем ввод текста

s.submit подтверждаем или типа нажимаем Ентер

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

-9

Первым делом мы видим список, раскроем его и поищем по какому эдементу будем определять ссылку, я выбрал class organic__url-text, и теперь посмотрим что получилось у нас в итоге.

-10

И вот итог

-11

Спасибо всем кто дочитал до конца! Прошу прощенья за нескладный слог(

Всем добра и здоровья!