Транспортир — Проверьте, не произошло ли что-то перед сменой страницы

#selenium #protractor #integration-testing

Вопрос:

Я вроде как новичок в транспортире. Я не уверен, что транспортир может это сделать. Я постараюсь описать, чего я хочу.

История

У нас есть веб-сайт на основе Angular, который необходимо протестировать на интеграцию. Тесты транспортира обычно терпят неудачу и показывают бессмысленную информацию, такую как: Failed: Wait timed out after xxxx ms . Этого недостаточно для отладки, так как страница сложная и в любом месте может произойти сбой тайм-аута. Поэтому я должен перейти на страницу «Инструкции по тестированию интеграции» вручную и посмотреть, в чем проблема. Я обнаружил, что такая ситуация часто случается:

На странице я нажал submit кнопку. Страница должна что-то отправить и вернуться на другую страницу. Чтобы проверить submit , работает ли это, интеграционный тест обычно используется url changing для определения того, не удался ли вызов службы. Поэтому код интеграционного теста обычно выглядит так

expect(await browser.getCurrentUrl()).toBe(browser.baseUrl "EXPECTED_URL");

Это EXPECTED_URL новый URL-адрес.

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

Question

Мой вопрос: В этом случае есть ли способ в транспортире проверить, появляется ли сообщение об ошибке до истечения времени ожидания изменения URL-адреса? Я не знаю, когда может появиться сообщение об ошибке, если вызов службы завершится неудачно. И я также не знаю, когда вызов службы завершится успешно, поэтому URL-адрес изменится. Так что я не знаю, чего мне ждать. Лучшее решение также приветствуется!

Пожалуйста, помогите! Спасибо!