Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

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

ajax
selenium
javascript
webdriver
java
Теги: #<Tag:0x00007f7b6522bd10> #<Tag:0x00007f7b6522bb80> #<Tag:0x00007f7b6522b9f0> #<Tag:0x00007f7b6522b888> #<Tag:0x00007f7b6522b5e0>

(Oleg Kuzovkov) #1

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

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

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

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


(Остап Олексин) #2

Смотрите в сторону Browsermob proxy.
https://habrahabr.ru/post/209752/ - здесь есть видео с примерами, плюс на форуме есть несколько тем касающихся browsermob.


(Sewa Makhinya) #3

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


(Stan) #4

document.readyState ?


(Taras) #5

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


(Oleg Kuzovkov) #6

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


(zub_test) #7

Если цель - это проверка отсутствия выполняющихся 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");
        }
    });
}

(Oleg Kuzovkov) #8

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


(zub_test) #9

Должно быть как-то так: https://gist.github.com/djangofan/7677995
Т/е/ модифицируем страницу налету и инжектим в неё jQuery.

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


(Oleg Kuzovkov) #10

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