Ответ 1
1. Что произойдет после вызова waitForAngularEnabled (false)? (после того, как в моем случае будут встречаться критерии или тайм-аут)
Эмпирически я обнаружил, что это, по-видимому, заставляет Protractor вести себя как просто Webdriver. Он не ждет, пока Angular "успокоится" (без ожидающих запросов HTTP или просмотра обновлений), что является поведением для true
. Вместо этого, если вы используете параметр false
, вам нужно будет использовать ExpectedConditions или аналогичные подходы, чтобы проверить предварительные условия для выполнения тестовых шагов надежно, так же, как и с обычным тестом Webdriver.
2. Должен ли я возвращать waitForAngularEnabled (true), чтобы продолжить нормальное тестирование?
Да. Однако я обнаружил, что в Protractor 5.1.1 и 5.1.2, независимо от того, использует ли поток управления или нет, рассеяние разных значений waitForAngularEnabled
во всех ваших тестах в одном и том же исполнении, по-видимому, дает непредсказуемые результаты; то есть включенное состояние не соответствует той же асинхронной семантике других вызовов Protractor/Webdriver. До сих пор я пришел к выводу, что вы не можете надежно смешивать waitForAngularEnabled (false) и waitForAngularEnabled (true) в том же самом исполнении. Я подозреваю, что это ошибка "Протрактор", но я еще не разработал простую и надежную проверку, чтобы доказать ее в поддержку отправки проблемы "Протрактор". Возможно, возникла проблема с здесь, теперь закрыта, но не полностью диагностирована.
3. Если я должен это сделать, куда его поместить?
"Перед" вы вызываете вызовы Protractor/Webdriver, которые требуют восстановления семантики ожидания Angular. Однако, как упоминалось выше, не ясно, что вы можете надежно гарантировать, что такие вызовы действительно будут выполнены в контексте настройки true
.
Если у вас есть несколько тестов, которые используют false
и другие true
, вы можете запускать их в отдельных исполнениях (отдельные процессы, не запускать их с помощью той же команды protractor
или ng e2e
). Я не сталкивался с проблемами при использовании этого подхода.