Может ли WebDriver работать с запросами?

Добрый день!

Нужна инфа по вопросу: Умеет ли webdriver работать с запросами браузера, т.е. у меня есть возвращаемые запросы с бэка, и могу ли я каким-то образом сверить с помощью webdriver’а, что мне отдается фронту с бэка, как то так.
Заранее благодарен.

Может, но только через прокси, browsermob например

И причем тут драйвер?

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

Посмотрите тут

Нет не только через прокси, если используете chromedriver - все проще:

  1. Запускаем Chrome с дополнительными Capabilities:
    Capabilities & ChromeOptions - ChromeDriver - WebDriver for Chrome

Нам нужен - perfLoggingPrefs object
enableNetwork - true

  1. Дальше собираем события -
    Performance Log - ChromeDriver - WebDriver for Chrome
1 Like

Боже, зачем вы предлагаете решение проблемы не верным путем.

Есть библиотеки типо rest-assured заточенные под тестирования запросов api
Можно взять уровень ниже и использовать библиотеки от apache commons.
В общем гугли automation testing api back-end

3 Likes

Вы знаете это сравнимо с тем, что нужно определить течь масла в двигателе, и в вашей реализации это выглядит так: разогнать машину на трассе до 100 км\ч и периодически смотреть под днище капота, не льется ли масло, можно? можно! но ЗАЧЕМ? Для проверки статусов и ответов служат апи тесты! Не нужно это делать с помощью селениума.

7 Likes

Спасибо, но это я и так знал. Мне нужно это для проверки фронта с бэком, всё ли верно передается и отображается. Апи тесты и так есть.

ну так если не правильно будет, то ошибка взлетит)

Это будет очень жестко )) там сам по себе перформанс лог огромный будет, а еще из него вычленять события нетворка. Даже не знаю… да и только в хроме работает…

Ничего вычленять не нужно (теоретически)

for (LogEntry entry : driver.manage().logs().get(LogType.NETWORK)) {
    System.out.println(entry.toString());
}

Вы на практике это пробовали - в рантайме определять какой респонс получил клиент?

Практические эксперименты, но без использования в реальном проекте. Хотя в реальных проектах использовал другие типы логов

Если очень не хочется использовать прокси, то можно всё-таки заставить хром передавать нужную инфу.
Вот библиотечка - GitHub - bayandin/devtools-proxy: Multiplexing proxy for Chrome DevTools. Fully compatible with Selenium and ChromeDriver - Александр Баяндин автор
А вот доклад автора библиотеки на эту тему - ChromeDriver Jailbreak — Александр Баяндин - YouTube

Сам не пробовал.

И тут сразу очевидный минус, по сравнению с прокси сервером - работать это будет только в chrome, в остальных браузерах - нет