Selenium Wire: Driver.Requests.clear () Не обращается за запросами между посещениями страницыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Selenium Wire: Driver.Requests.clear () Не обращается за запросами между посещениями страницы

Сообщение Anonymous »

Я использую Selenium Wire для мониторинга сетевых запросов при посещении одного и того же веб -сайта несколько раз в одном сеансе селена. У меня есть функция, которая ожидает появления конкретного запроса, и поднимает исключение, если она не: < /p>

Код: Выделить всё

class SeleniumExtended:

def __init__(self, driver):
self.driver=driver
self.default_timeout=15
self.misc= misc_selenium(self.driver)
self.original_interceptor = None

def   wait_until_request_appeared(self, request_method, request_name, timeout=30):

self.driver.requests.clear()

start_time = time.time()

while time.time() - start_time < timeout:
for request in self.driver.requests:
if request.method == request_method and request_name in request.url:
return request

time.sleep(0.5)  #
raise TimeoutException(
f"Desired request '{request_name}' with method '{request_method}' did not appear within {timeout} seconds.")
< /code>
Перед перезагрузкой страницы я использую следующую функцию для очистки старых запросов: < /p>
 def clear_requests(self):

self.driver.requests.clear()
< /code>
При первом посещении страницы, если запрос не отображается, wait_until_request_appeared выполняется правильно. Однако после второго посещения, если запрос появился при первом посещении, но не во втором, wait_until_request_appear Вероятно, потому что self.driver.requests.clear () на самом деле не удаляет старые запросы, поскольку функция обнаруживает запрос из предыдущего посещения. < /p>
Как я должен отлаживать это?`extended.wait_until_request_appeared("POST", "callback")

self.driver.get("https://www.flipkart.com/images-nose-3-steao-remove-blackheads-pack-2/p/itmf1cedd4531e1e?pid=FCPGJGGYKJJBRJ9B&lid=LSTFCPGJGGYKJJBRJ9BPWP6VP&marketplace=FLIPKART&cmpid=content_face-pack_8965229628_gmc)`
< /code>
Это для первого экземпляра. Функция проходит, как и ожидалось < /p>
, затем для 2 -го посещения. Где запрос не появляется, и я очищаю запросы перед повторным въездом: < /p>
`
extended.clear_requests()

time.sleep(5)

extended.wait_until_request_appeared("POST", "callback")

self.driver.get("https://www.flipkart.com/images-nose-3-steao-remove-blackheads-pack-2/p/itmf1cedd4531e1e?pid=FCPGJGGYKJJBRJ9B&lid=LSTFCPGJGGYKJJBRJ9BPWP6VP&marketplace=FLIPKART&cmpid=content_face-pack_8965229628_gmc)`
Результат: Функция успешно проходит, когда она не должна;>

Подробнее здесь: https://stackoverflow.com/questions/795 ... between-pa
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»