Я использую Testcafe для тестирования своего приложения. У меня есть страничка, на которой есть кнопка. Когда я нажимаю кнопку, страница перенаправляется на другую страницу, которая содержит кучу изображений и где происходит вызов сервера. Затем, когда вызов был разрешен, страница снова перенаправляется на другую страницу.
Я пытаюсь протестировать эту среднюю страницу, которая отображается всего несколько секунд.
Я хочу проверить, был ли URL-адрес изменен, когда страница A перешла на страницу B. Я хочу проверить, была ли показана страница и показаны изображения.
Проблема в том, что когда я автоматически нажимаю кнопку на странице A, он переходит на страницу B, а затем через несколько секунд переходит на страницу C, а затем тест выполняется и просто зависает.
Я пробовал установить
await t.setPageLoadTimeout(0)
.wait(200000)
.eval(() => window.location.pathname)
.expect(window.location.pathname)
.contains('/gatheringDetails', 'The response was ok', {timeout: 500});Итак, я могу контролировать тайм-аут загрузки страницы, чтобы поймать среднюю страницу, но это не работает.
Может кто поможет? Пожалуйста.
Ошибки нет ни на консоли, ни в окне консоли браузера. Я использую хром.
Прохладный. Нужная страница находится в iframe или новом сеансе / вкладке браузера?
Нет, он находится на той же вкладке и без iframe ... Итак, последовательность следующая: Страница A -> Страница B -> Страница C. Я хочу протестировать страницу B, но она отображается только в течение нескольких секунд, пока не завершится внутренний вызов.
Грязный взлом: после завершения страницы A просто используйте переход по URL-адресу страницы B, затем добавьте спящий поток. НО, это временное решение. Обязательно ли это утверждение о видимости страницы B?
да, я пытаюсь протестировать пользовательский интерфейс страницы b ... есть ли способ отложить перенаправление со страницы B на страницу C
@AGilani Я сам на самом деле не использую TestCafe, можете ли вы проверить наличие изображения, если знаете, какое изображение следует ожидать?
В порядке. Я думаю, что лучшим решением будет разделить этот сценарий на два теста. Лучшая практика при написании теста - иметь ТОЛЬКО одно утверждение. В вашем случае: Тест 1: страница A -> действие -> страница B -> утверждать для страницы B желаемый контент. Тест 2: страница A -> действие -> страница C -> утверждение для страницы C желаемого содержимого.
Вы абсолютно правы, однако у меня здесь есть странный сценарий, когда я должен проверить страницу B, но страница B перенаправляется на страницу C. Я ищу способ приостановить ее или, по крайней мере, способ проверить ее содержимое.





Решение состоит в том, чтобы использовать ловушку запроса, которая будет прослушивать запрос страницы B и перехватывать ответ. См. Перехват HTTP-запросов
Это маршрут, который я выбрал
Поэтому я использовал Перехват HTTP-запросов и ввел задержку ответа, чтобы я мог оставаться на странице B дольше, чтобы проверить визуальные эффекты на ней.
прекрасная работа! Но мне немного любопытно, как вы задержали ответ.
перед возвратом ответа добавьте задержку с использованием тайм-аута
@AGilani - не могли бы вы рассказать, как именно вы добавили задержку?
@A Gilani, пожалуйста, предоставьте трассировку стека от ошибки.