Используя кукольник, как я могу дождаться завершения определенного запроса xhr

Я тестирую свое приложение для реагирования и хочу проверить, отправлен ли запрос XHR из моего приложения. Когда я использую page.waitFor (5000), иногда он работает, а иногда - нет. Есть ли лучший способ заставить код ждать завершения или разрешения XHR?


person Gal Tubi    schedule 05.02.2019    source источник
comment
Почему бы вам не попробовать обещания javascript javascript.info/promise-basics   -  person Akhilesh krishnan    schedule 05.02.2019
comment
Может быть, page.waitForResponse() может помочь?   -  person vsemozhebuty    schedule 05.02.2019
comment
Если конкретное DOM изменение происходит после завершения запроса, вы можете использовать page.waitForSelector('.class-of-element-showed-after-req-complete')   -  person Bernhard    schedule 05.02.2019


Ответы (1)


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

Поскольку вы тестируете свое собственное приложение, я предлагаю прослушивать ваш сетевой трафик (после этот вопрос)

Суммируя:

  • Включить инспекцию трафика page.setRequestInterceptionEnabled установлено значение true
  • Зарегистрируйте прослушиватель событий для каждого запроса page.on('request'
  • Проверяйте (для каждого запроса), соответствует ли он вашему желаемому запросу (используя свойство request.url)
  • Вызовите свою функцию, когда URL-адрес соответствует желаемому запросу
person ymz    schedule 05.02.2019