Как считывать GET/POST запросы из браузера на JAVA.

Возникла необходимость считывать GET/POST запросы из браузера для тестирования. Т.е. данные типа Size, Domain, IP, Timeline. Цель просто, перед выполением дейсвия на странице я хочу точно знать что не выполняються какие то скрытые AJAX/JavaScript скрипты, и что все элементы готовы к использованию.
Подходящего инструмента найти пока что не удалось.

Есть идея попробовать через тот че JS что то выдумать, но может существует какой то более практичный и простой способ?

Подскажет кто?

Заранее благодарен.

Смотрите в сторону Browsermob proxy.
Selenium и BrowserMobProxy: вместе веселее! / Habr - здесь есть видео с примерами, плюс на форуме есть несколько тем касающихся browsermob.

1 Like

Когда-то решал подобную задачу, подняв местное прокси и заворачивая на его браузер. Прокси регулярңо сообщает Куда Нужңо всё, что удаётся выковырять из запроса.

document.readyState ?

browsermob proxy трекает ето все

Именно проблема с Ajax запросами, которые выполняются на заднем фоне. Пока что решил проблему с помощью JQuery ajaxSend и ajaxCompleted методами, присваивая в cookie переменной значение, и перечитывая его в моем фреймворке.

Если цель - это проверка отсутствия выполняющихся ajax запросов, то можно воспользоваться jQuery:

public void waitForAjax(WebDriver driver) {
   (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {
            JavascriptExecutor js = (JavascriptExecutor) d;
            return (Boolean) js.executeScript("return !!window.jQuery && window.jQuery.active == 0");
        }
    });
}
3 Likes

Ну я писал что примерно так и сделал у себя, в предыдущем посте. Но Ваша реализация мне больше по нраву, Спасибо :slight_smile:
Но как быть если на станице не загружен JQuery?

Должно быть как-то так: My ideas for a method to inject jQuery.js into a page for Selenium testing. · GitHub
Т/е/ модифицируем страницу налету и инжектим в неё jQuery.

Сразу скажу, что сам не инжектил никогда. Поэтому за работоспособность кода не ручаюсь. Но в теории так и должно быть :smile:

Тоже вариант, но сомнительный :slight_smile: Ломать структуру страницы для тестов - это, по моему мнению, не очень хорошо.
Я попробую, спасибо.