@Andris_habrahabr

Как отследить завершение выполнения всех ajax-запросов на странице сайта при помощи selenium?

Учусь делать тестирование UI страницы при помощи selenium.
На странице имеется множество ajax-запросов, которые выполняются при загрузке, проблема в том, что я не могу программно отследить, когда их выполнение завершится.

Использую такую конструкцию:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC


timeout = 5
wait = WebDriverWait(driver, timeout)
my_tag_present = EC.visibility_of_element_located((By.TAG_NAME, "my_tag"))
wait.until(my_tag_present)


такой подход работает, но не всегда, и мне приходится указывать конкретный тэг (tag_id, class, xpath).

Хочется применить более комплексный и универсальный подход, без указания нужных тэгов.
Как, например, работают сервисы по тестированию сайтов. Ему (сервису) ведь неизвестно, какие элементы должны быть на странице, однако, полное время загрузки и скриншот загруженной страницы в отчёте мы видим.
  • Вопрос задан
  • 485 просмотров
Пригласить эксперта
Ответы на вопрос 2
driver.execute_script("return jQuery.active == 0")
Ответ написан
Boolean areAjaxRequestsCompleted = driver.execute_script("return (typeof($) === 'undefined') ? true : !$.active;")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы