【发布时间】:2021-07-04 12:58:45
【问题描述】:
我知道这个主题有几个线程,但我发现没有一个解决方案适用于 AngularJS v1.6
所以这是我尝试过的:
public void waitForAngularRequestsToFinish() {
while ((boolean) jsExec.executeScript(
"return (typeof angular !== 'undefined')? true : false;")) {
jsExec.executeAsyncScript(
"var callback = arguments[arguments.length - 1];"
+ "angular.element(document.body).injector().get('$browser').notifyWhenNoOutstandingRequests(callback);");
}
}
这只是陷入了无限循环。
private void waitForAngularLoad() {
String angularReadyScript = "return angular.element(document).injector().get('$http').pendingRequests.length === 0";
angularLoads(angularReadyScript);
}
public void waitUntilAngularReady() {
try {
Boolean angularUnDefined = (Boolean) jsExec.executeScript("return window.angular === undefined");
if (!angularUnDefined) {
Boolean angularInjectorUnDefined = (Boolean) jsExec.executeScript("return angular.element(document).injector() === undefined");
if (!angularInjectorUnDefined) {
poll(20);
waitForAngularLoad();
poll(20);
}
}
} catch (WebDriverException ignored) {
}
}
这没有任何作用。
我真的被困在这个上了。似乎没有任何效果,因此非常感谢任何帮助。
【问题讨论】:
标签: java angularjs selenium automated-tests