Протестируйте страницу перенаправления

Я использую 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});

Итак, я могу контролировать тайм-аут загрузки страницы, чтобы поймать среднюю страницу, но это не работает.

Может кто поможет? Пожалуйста.

@A Gilani, пожалуйста, предоставьте трассировку стека от ошибки.

Zhivko.Kostadinov 04.01.2019 13:52

Ошибки нет ни на консоли, ни в окне консоли браузера. Я использую хром.

A Gilani 04.01.2019 14:34

Прохладный. Нужная страница находится в iframe или новом сеансе / вкладке браузера?

Zhivko.Kostadinov 04.01.2019 14:41

Нет, он находится на той же вкладке и без iframe ... Итак, последовательность следующая: Страница A -> Страница B -> Страница C. Я хочу протестировать страницу B, но она отображается только в течение нескольких секунд, пока не завершится внутренний вызов.

A Gilani 04.01.2019 15:05

Грязный взлом: после завершения страницы A просто используйте переход по URL-адресу страницы B, затем добавьте спящий поток. НО, это временное решение. Обязательно ли это утверждение о видимости страницы B?

Zhivko.Kostadinov 04.01.2019 15:10

да, я пытаюсь протестировать пользовательский интерфейс страницы b ... есть ли способ отложить перенаправление со страницы B на страницу C

A Gilani 04.01.2019 15:11

@AGilani Я сам на самом деле не использую TestCafe, можете ли вы проверить наличие изображения, если знаете, какое изображение следует ожидать?

Mate Mrše 04.01.2019 15:15

В порядке. Я думаю, что лучшим решением будет разделить этот сценарий на два теста. Лучшая практика при написании теста - иметь ТОЛЬКО одно утверждение. В вашем случае: Тест 1: страница A -> действие -> страница B -> утверждать для страницы B желаемый контент. Тест 2: страница A -> действие -> страница C -> утверждение для страницы C желаемого содержимого.

Zhivko.Kostadinov 04.01.2019 15:19

Вы абсолютно правы, однако у меня здесь есть странный сценарий, когда я должен проверить страницу B, но страница B перенаправляется на страницу C. Я ищу способ приостановить ее или, по крайней мере, способ проверить ее содержимое.

A Gilani 04.01.2019 15:26
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
2
9
779
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Решение состоит в том, чтобы использовать ловушку запроса, которая будет прослушивать запрос страницы B и перехватывать ответ. См. Перехват HTTP-запросов

Это маршрут, который я выбрал

A Gilani 16.01.2019 10:36

Поэтому я использовал Перехват HTTP-запросов и ввел задержку ответа, чтобы я мог оставаться на странице B дольше, чтобы проверить визуальные эффекты на ней.

прекрасная работа! Но мне немного любопытно, как вы задержали ответ.

hdorgeval 16.01.2019 12:52

перед возвратом ответа добавьте задержку с использованием тайм-аута

A Gilani 18.01.2019 13:02

@AGilani - не могли бы вы рассказать, как именно вы добавили задержку?

noahpc 21.09.2021 19:13

Другие вопросы по теме