[英]Custom wait for selenium for angular7 application
我们正在使用Selenium Webdriver自动化Angular 7应用程序。 我需要使用Javascript或JQuery的自定义等待,它将等待页面呈现并等待$ http响应完成。
我已经尝试过明确的等待,但它们不工作,因为元素加载到页面上但仍然加载并尝试了Webdriver,但这也失败了。
这些可能对您有所帮助。 在访问任何元素之前,检查是否完成了Jquery / Angular。
public static boolean isJQueryDone() {
Object jsResponse = tryJavascript("return jQuery.active;");
if (jsResponse instanceof Long) {
return ((Long) jsResponse) == 0;
} else if (jsResponse instanceof String) {
String response = (String) jsResponse;
return (response.startsWith("{\"hCode\"") || response.isEmpty());
} else {
return true;
}
}
public static boolean isAngularDone() {
Object jsResponse = tryJavascript("return window.getAllAngularTestabilities().filter(x=>!x.isStable()).length;");
if (jsResponse instanceof Long) {
return ((Long) jsResponse) == 0;
} else if (jsResponse instanceof String) {
String response = (String) jsResponse;
return response.isEmpty();
} else {
return true;
}
}
public static synchronized Object tryJavascript(String script, Object... args) {
try {
return execJavascript(script, args);
} catch (Exception ignore) {
return "";
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.