Транспортир: заставьте контрольный пример ждать, пока не будет выполнена аутентификация - PullRequest
0 голосов
/ 11 мая 2018

Я работаю над приложением, в котором я загружаю страницу с помощью browser.get ('app url'), затем она перенаправляет на другой URL-адрес для аутентификации, запрашивает учетные данные, затем переходит на домашнюю страницу (URL-адрес приложения), а страница завершает проверку подлинности. Проблема состоит в том, что некоторые первоначальные тестовые случаи не выполняются с этой ошибкой 'Ошибка при ожидании синхронизации Protractor со страницей: «и angularJS тестируемость, и угловая тестируемость не определены. Это может быть либо потому, что это неугловая страница, либо потому что ваш тест включает в себя навигацию на стороне клиента, которая может помешать загрузке Protractor. '

Я много разбирался в git / stackoverflow / etc, но мог найти любую помощь, которая разрешила эту проблему.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Попробуйте что-то вроде этого: -

1) Перейдите на домашнюю страницу 2) Страница откроется и перенаправится на страницу входа. 3) Вы можете отправить целевой URL-адрес (то есть URL-адрес страницы входа) нафункция для ожидания перенаправления.4) После перенаправления установить синхронизацию = false 5) Завершить процесс входа в систему 6) Вызвать ожидание веб-драйвера selenium 7) Установить синхронизацию = true

Вот пример функции для проверки изменения URL-адреса.Есть встроенная функция ожидания, которая поможет синхронизировать вызовы

waitForURLToChange(target, time) {
    console.log(target);
    let timeout = time
    return browser.driver.wait(function () {
      return browser.driver.getCurrentUrl().then(function (actualUrl) {
        console.log(actualUrl.indexOf(target));        
        return actualUrl.indexOf(target) > -1;     
      });
    }, timeout);

};

0 голосов
/ 11 мая 2018

Вот два попытки выхода

  • Если вы использовали асинхронный / ожидающий подход для теста транспортира, ключевое слово await может помочь вашей строке кода дождаться завершения предыдущего шага.

  • Если тестируемое приложение не является угловым, отметьте `browser.ignoreSynchronization = true;в конфигурационном файле транспортира.

Спасибо

...