#protractor #wait
#транспортир #подождите
Вопрос:
Выполнение тестов e2e в транспортире, когда мы используем ignore.synchronization=true
/ browser.waitforAngularEnabled(true)
для обработки ожиданий, слишком медленно по сравнению с browser.sleep(10000)
переходом к следующему шагу. Как решить такого рода проблемы с ожиданием, чтобы ускорить выполнение скрипта?
Комментарии:
1. Заставлять Protractor ждать, пока страница angular стабилизируется, является одной из наиболее полезных функций Protractor, поэтому я считаю, что отключать ее на весь период тестирования — плохая идея, и это, скорее всего, причинит вам больше боли. Я бы хотел устранить причину, по которой загрузка приложения занимает так много времени? Это занимает так много времени на каждой странице или некоторые выполняются быстрее? Большая задержка между всеми действиями?
Ответ №1:
Разница:
ignore.synchronization=true/ browser.waitforAngularEnabled(true)
используются, чтобы заставить protractor ждать, пока не будут загружены все угловые модули.
browser.sleep(// time in ms)
это необработанный способ остановки транспортира для данного конкретного ms
.
Решение:
Для обработки проблем с ожиданием:
используйте browser.waitforAngularEnabled(false)
после получения вашего базового URL. Затем вы можете использовать expected waits
, который заставляет транспортир ждать, пока это ожидание не завершится.
См https://www.protractortest.org/#/api?view=ProtractorExpectedConditions для получения дополнительной информации
Надеюсь, это поможет вам
Комментарии:
1. Такого рода ожидания вызываются в явных ожиданиях