【发布时间】:2019-01-11 13:15:41
【问题描述】:
我正在使用与 Salim 在此处发布的 Testing AngularJS with Selenium 类似的实现
但是,在运行时,检查将系统地等待“webdriver 等待”期间。
据我所知,布尔检查将始终返回 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,等待就应该结束
结果: 无论如何都要达到“超时”
【问题讨论】: