Мы используем одностраничное приложение (SPA, которое отображает данные на стороне клиента), используя Vue. js, и у нас есть тесты автоматизации пользовательского интерфейса с использованием Selenium. Я не думаю, что мы используем Vue. js, а Selenium - это проблема, я думаю, что это общая проблема при тестировании пользовательского интерфейса с помощью приложения SPA.
Проблема
Тесты выполняются до загрузки DOM ...
В SPA при навигации браузер не перезагружается, поэтому проблема заключается в том, что тесты считают, что они могут выполняться
В приложении, отображаемом на стороне сервера (например, MVC), браузер перезагружается при переходе на другую страницу, только когда браузер решит, что страница загружена, будут запущены тесты.
Это не относится к SPA, у браузера в SPA нет (насколько мне известно) способа сообщить о тестах, когда страница готова к тестированию.
Может кто-нибудь поможет? Я ищу решение или событие для браузера, чтобы тесты знали, когда они готовы к запуску.
Пробные решения
Мы жестко запрограммировали a тайм-аут для ожидания тестов (который иногда срабатывает), но он не гарантирует, что каждая сборка конвейера пройдет, так как не гарантируется одинаковая скорость загрузки каждый раз и не гарантируется, что страница загрузится до истечения времени ожидания.