Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с 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
19.03.2023 13:43
Установщик веб-платформы, предлагаемый компанией Microsoft, перестанет работать 31 декабря 2022 года. Его закрытие привело к тому, что мы не можем запускать наши php-файлы через localhost на наших компьютерах. Мне с трудом удалось установить его и я решил поделиться этой статьей, чтобы помочь тем,...
19.03.2023 13:03
При использовании компонентов React в сочетании с Context вы можете оптимизировать рендеринг, обернув ваш компонент React в React.memo сразу после поставщика контекста. Это позволит избежать ненужных повторных рендеров.
19.03.2023 11:50
Лично я попрощался с операторами print() в python. Без шуток.
19.03.2023 06:15
Я пишу эту статью, чтобы поделиться тем, как настроить макет Metronic с помощью Sass, поскольку Metronic предоставляет так много документации, и они постоянно обновляют версию (а нам нужно быстро наверстать упущенное!).
18.03.2023 11:32
Здравствуйте дорогие читатели, я Ферди Сефа Дюзгюн, сегодня мы продолжим с вами уроки css. Сегодня мы снова продолжим с так называемых классов.
18.03.2023 11:16
CSS, или "Каскадные таблицы стилей", - это язык стилей, используемый в веб-страницах. CSS является одним из основных инструментов веб-разработки наряду с HTML и JavaScript.