Недостающий ключ в загадке - это Protractors ExpectedConditions, и это одна из лучших вещей в транспортире.
https://www.protractortest.org/# / api? View = ProtractorExpectedConditions
Ожидание, которое вы делаете, представляет собой ожидание c, а транспортир поддерживает динамическое ожидание c, что означает что он ожидает только необходимое время, а не общее время.
await browser.wait (E C .visibilityOf (by.tagName ('body)), 10000, "ожидание присутствия тела")
Приведенный выше код ожидает до 10 секунд, на наличие тега body.
Но я бы подождал, пока URL не изменится или не появится какой-либо элемент на главной странице.
Это классический вопрос с изучением транспортира, и часто возникает вопрос .. «Почему не ждать, а ждать».
await
, который есть в приведенном ниже коде, ожидает вопрос, если element (...). IsPresent (), так что это простой вопрос для браузера, и он просто отвечает "нет", так как скорее всего, он еще не загружен.
Ожидайте (элемент ожидания (by.tagName ('body')). IsPresent ()). ToBe (true); // NOK