CoderCastrov logo
CoderCastrov
JavaScript - ДжаваСкрипт

Автоматизация парсинга и тестирования веб-сайтов с помощью Python | Рецепты Selenium

Автоматизация парсинга и тестирования веб-сайтов с помощью Python | Рецепты Selenium
просмотров
2 мин чтение
#JavaScript - ДжаваСкрипт

1. Введение

Существует множество библиотек для автоматизации в Python, которые помогают парсить сайты и выполнять тестирование. Проекты, такие как Roboform, BeautifulSoup и requests, предоставляют отличные возможности.

Одним из немногоизвестных проектов для Python является Selenium. Это принятый в индустрии фреймворк для автоматизации и тестирования пользовательских интерфейсов. В отличие от других библиотек для просмотра/парсинга веб-страниц, Selenium работает внутри браузера, как если бы система взаимодействовала с ним.

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

Одной из основных проблем при парсинге веб-страниц может быть то, что JS вызывает изменение страницы после ее загрузки. Мы можем обнаружить, что разбираемый ответ на запрос, например, с помощью BeautifulSoup, не содержит множество частей. Это происходит потому, что сайты, использующие JS, требуют браузера, такого как Chrome, для выполнения кода JS.

Именно здесь Selenium проявляет себя, поскольку он запускает окно браузера и отправляет команды в него.

Вот визуальный пример работы Selenium с пользовательским интерфейсом JsonPlacerholder:

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

Однако мы полностью пропустим все это и сразу перейдем к Python API.

2. Установка Chrome и Chrome Driver

Первый шаг в автоматизации наших тестов пользовательского интерфейса с использованием Python - это установка поддерживаемого браузера и соответствующего драйвера.

Для наших примеров мы будем использовать Chrome, поэтому сначала установите Chrome.

После установки Chrome нам нужно получить его версию, посетив chrome://settings/help.

Теперь перейдите на Chrome Driver и получите последнюю версию драйвера для нашей операционной системы:

Загрузки - ChromeDriver - WebDriver для Chrome

WebDriver для Chrome

WebDriver для Chrome sites.google.com

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

Для Windows это будет включать распаковку в что-то вроде:

C:\Program Files (x86)\ChromeDriver

Затем добавьте его в путь через окно Свойства системы > Переменные среды.

Для macOS и других операционных систем на базе Unix просто скопируйте бинарный файл из загрузки в папку /usr/local/bin.

Для более подробного руководства по Selenium и процессу установки см. документацию.

Selenium с Python - Документация Selenium Python Bindings 2

Примечание: Это не официальная документация. Если вы хотите внести свой вклад в эту документацию, вы можете форкнуть ее...

selenium-python.readthedocs.io

1. Установка - Документация Selenium Python Bindings 2

Привязки Selenium Python предоставляют простой API для написания функциональных/приемочных тестов с использованием Selenium WebDriver. С помощью...

selenium-python.readthedocs.io

3. Hello World of Selenium

В следующем примере мы увидим, как выполнять простые взаимодействия с базовым сайтом https://jsonplaceholder.typicode.com/

В следующем примере показано, как выполнить действия из GIF во введении. Мы узнаем, как по пути захватить скриншоты для создания GIF с помощью метода driver.save_screenshot(...).

Эта страница будет обновлена с дополнительными примерами.