Я использую реализацию, аналогичную той, что Салим выложил здесь Тестирование 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
Результат:
Всегда достигайте «тайм-аута» независимо от того, что