дождитесь окончания запроса XHR - PullRequest
0 голосов
/ 12 марта 2019

Я использую ожидание до lambda driver: driver.execute_script("return jQuery.active == 0"), чтобы убедиться, что страница загружается и завершил ajax-вызов.

Но когда я нажимаю на одну из кнопок, в сетевом журнале происходит вызов XHR, но window.jQuery показывает undefined, поэтому я не могу использовать указанную выше команду.

Как мне дождаться окончания вызова XHR или получения ответа.

WebDriverWait(driver, 30).until(lambda driver: driver.execute_script("return jQuery.active == 0")

1 Ответ

0 голосов
/ 12 марта 2019

вы можете подождать до завершения xhr, установив ajax async: false.

Чтобы использовать ajax, у вас должна быть только библиотека jQuery, тогда она будет работать

Пример:

$.ajax({
    url : "/submit/checkuser/",
    type : "get",
    async: false,
    success : function(userStatus) {
       if (userStatus == 'Disabled') { // check if user if disabled                    
       } else if (userStatus == 'Deleted') { // check if user if deleted
       } else {
       };
    },
    error: function() {
       connectionError();
    }
 });

Этот ajax имеет значение asyc false, поэтому он завершил свое выполнение и перешел к следующей функции

Для получения информации о селене питона, пожалуйста, обратитесь к ссылке ниже

веб-драйвер ожидает ajax-запроса в python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...