дождитесь окончания загрузки Angular - PullRequest
0 голосов
/ 11 января 2019

Я использую реализацию, аналогичную той, что Салим выложил здесь Тестирование AngularJS с Selenium

Однако при запуске проверка будет систематически ожидать период ожидания веб-драйвера.

Из того, что я вижу, логическая проверка всегда будет возвращать false, несмотря ни на что.

У кого-нибудь есть идеи?

Я пытался сократить значение тайм-аута ожидания, а также изменить скорость пула, но все, что он сделал, - это использовал эти новые значения, а не «возвращал true» проверке.

// Will check if Angular still has pending http_requests ongoing and wait if required
public boolean untilAngularHasFinishedProcessing()
{
  until(() ->
    {
      final boolean hasFinishedLoading = Boolean.valueOf(((JavascriptExecutor) driver)
    .executeScript("return (window.angular !== undefined) "
      + "&& (angular.element(document).injector()!==undefined) "
      + "&&(angular.element(document).injector().get('$http')"
      + ".pendingRequests.length===0)").toString());
      log.info("Waiting on angular to finish processing => " + hasFinishedLoading);
      return hasFinishedLoading;
    }
  );
  return true;
}

Ожидаемое: ожидание должно закончиться, как только у Angular не будет ожидающих http_requests

Результат: Всегда достигайте «тайм-аута» независимо от того, что

1 Ответ

0 голосов
/ 17 января 2019

Думаю, я нашел проблему: наше приложение использует Angular 6.x, в то время как эта проверка предназначена для приложений Angular 1.x.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...