Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы веб-браузеров. Selenium 4 - это последняя версия Selenium, поддерживающая протокол Chrome DevTools Protocol (CDP), который позволяет общаться и контролировать различные аспекты браузера, такие как сеть, безопасность, производительность и т.д.
Одной из функций CDP является перехват сетевых запросов и ответов, что может быть полезно для отладки, тестирования или анализа веб-приложений. Вы можете использовать CDP для перехвата сетевого трафика и создания файлов HAR (HTTP Archive), которые представляют собой файлы в формате JSON, содержащие подробную информацию о каждом запросе и ответе.
Однако прямое использование CDP может быть громоздким и сложным, поскольку необходимо написать много кода для обработки различных сценариев и событий. Поэтому некоторые разработчики создали утилиты или библиотеки, которые упрощают этот процесс и предоставляют абстракцию более высокого уровня.
Одной из таких утилит является selenium-har-util , которая является нашим проектом с открытым исходным кодом на GitHub. Эта утилита предназначена для работы с Selenium 4 на Java и поможет вам легко получать сетевые запросы и записывать файлы HAR.
В этой статье блога я покажу вам, как использовать selenium-har-util в вашем проекте Selenium 4 и создавать HAR-файлы для ваших тестов веб-автоматизации.
Чтобы использовать selenium-har-util, вам необходимо:
- Selenium 4, поддерживающий CDP
- ChromeDriver
- Google Chrome или любой другой браузер, поддерживающий CDP Session (пока не протестирован в Geckodriver или Safari)
- Java 8
- Maven
Чтобы установить selenium-har-util в качестве зависимости в ваш проект Maven, вам нужно добавить следующий репозиторий:
<repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository>
А затем добавьте следующую зависимость:
<dependency> <groupId>com.github.blibli-badak</groupId> <artifactId>selenium-har-util</artifactId> <version>1.0.2</version> </dependency>
Если вы используете не Maven, а другой инструмент, вы можете проверить эту ссылку для получения дополнительных инструкций: https://jitpack.io/#blibli-badak/selenium-har-util
Чтобы использовать selenium-har-util в вашем коде, вам нужно выполнить следующие шаги:
1. Создайте экземпляр драйвера как обычно:
driver = new ChromeDriver(options);
2. Интегрируйте с сетевым слушателем, предоставляемым selenium-har-util:
NetworkListener networkListener = new NetworkListener(driver,”har.har”);
Первый аргумент - экземпляр вашего драйвера, второй аргумент - имя создаваемого HAR-файла.
3. Начните перехватывать сетевые запросы:
networkListener.start();
Это позволит включить сетевой домен в CDP и добавить слушателя для перехвата запросов.
4. Запустите свой тест автоматизации как обычно:
driver.get("https://example.com"); // do some actions on the web page
5. После завершения тестирования создайте файл HAR с помощью этого метода:
driver.quit(); networkListener.createHarFile();
Это запишет весь перехваченный сетевой трафик в JSON-файл с именем har.har (или любым другим именем, которое вы указали) в директории вашего проекта.
6. Откройте файл HAR с помощью вашей любимой программы просмотра HAR или просмотрите его через вкладку inspect element -> Network в вашем браузере.
Вы должны увидеть что-то вроде этого:
В этой статье я показал, как использовать selenium-har-util для захвата сетевых запросов и создания файлов HAR с помощью Selenium 4 на Java. Эта утилита может помочь вам легче отлаживать, тестировать или анализировать веб-приложения, предоставляя подробную информацию о каждом запросе и ответе.
Надеюсь, вы нашли эту статью полезной и интересной. Если у вас есть вопросы или отзывы о selenium-har-util, не стесняйтесь оставить комментарий ниже, или свяжитесь с нами на нашей странице GitHub.
Счастливого тестирования!
GitHub - blibli-badak/selenium-har-util
20.08.2023 18:21
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".
20.08.2023 17:46
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
19.08.2023 18:39
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.
19.08.2023 17:22
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!
18.08.2023 20:33
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.
14.08.2023 14:49
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.