Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

browsermob-proxy недозаписывает запросы при заходе на новую страницу

browsermob-proxy
webdriver
python
Теги: #<Tag:0x00007fedb7c4d400> #<Tag:0x00007fedb7c4d270> #<Tag:0x00007fedb7c4d0b8>

(Виталий Коряков) #1

Добрый день
Вопрос такого рода, столкнулся с browsermob-proxy. необоходимо снимать запросы из Network и дальше уже обработка.
Проблемы с одной страницей (страница 1) не возникают - поднял прокси, взял все что надо.
Но, при открытии другой (пусть страница 2) страницы (прокси все еще поднят) запросы записываются не все. При чем, если отдельно загрузить страницу 2 - все запросы на месте.
Проблема именно с любой страницей 2.

Код не скидывал, может кто встречался с подобным. При необходимости опишу более подробно с примерами.


(Vasiliy Rakshin) #2

Возможно, при открытии новой страницы надо создавать новый har?
.newHar("la-la-la")


(Виталий Коряков) #3

При открытии новой страницы я создаю новый хар )
proxy.new_har()
эффект тот же…


#4

А нет ли принципиальной разницы между запросами, которые попадают и которые не попадают?
По умолчанию, BrowserMob создает httpProxy и sslProxy. Может, еще какой-то протокол используется, вебсокеты, например? Или какой-нибудь замут с редиректами?


(Виталий Коряков) #5

Еще заметил закономерность, первый раз страница загружается довольно пордолжительное время, в статус баре видно как подгружаются элементы, все подгружается как надо. Вторая же страница загружается буквально секунду и падает. И реквестов удается выловить раза в 2-3 меньше. Пробовал ставить time.sleeep(), wait_for_traffic_to_stop(303, 400), создается впечатление, что последний не работает корректно, так как страница закрывается моментально. Смысл тот же, после отработки всех таймеров страница закрывается и тест падает по тем же причинам.
Есть идеи?


(Виталий Коряков) #6

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


#7

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

Во-вторых, таймеры на какие-то запросы могут стоять в клиентском скрипте. Так даже можно найти баг, что страница не работает при медленном соединении.


(Виталий Коряков) #8

Я сравниваю страницы не вручную, а запускаю циклом 2 раза одну и ту же страницу, что бы видно было что приходит и что нет.
Вручную как раз в нетворке все есть.
Таймеров нет, скрипты все наши )


(Виталий Коряков) #9

Вопрос решился.
Для каждой страницы создаем new_page и дело в шляпе.
Как делал раньше - new_har не помогает.


(Rizzak) #10

Привет
Можешь показать свой код?
Пытаюсь настроить browsermob, ничего не получается(


(Виталий Коряков) #11

Хы, почти 2 года прошло )) я уже и компанию сменил, и код удачно потерян ).
Посмотри мануалы, там несложно настраивается.