игнорировать.синхронизация=true/ browser.waitforAngularEnabled(true) занимает слишком много времени по сравнению с browser.sleep()

#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. Такого рода ожидания вызываются в явных ожиданиях