gpt4 book ai didi

selenium - 检测到 Angular 2 已完成运行

转载 作者:太空狗 更新时间:2023-10-29 17:12:01 26 4
gpt4 key购买 nike

我们使用 Selenium WebDriver 来自动化我们基于 UI 的测试。我们面临的挑战之一是检测页面何时真正完成加载,而 Angular 1 在这方面也是一个挑战。我们最终专门执行了这段代码来检测 Angular 1 是否完成:

if(typeof window.angular !== \"undefined\")
{
var injector = window.angular.element(\"*[ng-app]\").eq(0).injector();

if(injector)
{
var $rootScope = injector.get(\"$rootScope\");
var $http = injector.get(\"$http\");

if($rootScope.$$phase === \"$apply\" || $rootScope.$$phase === \"$digest\" || $http.pendingRequests.length !== 0)
{
return false;
}
}
}

我们最近测试的应用程序切换为使用 Angular 2。上面的代码片段不等待 Angular 2 完成。有什么建议吗?

最佳答案

如果是 Angular 2,您应该等待 "testabilities" 的稳定性所有 Angular 2 应用中的:

functions.waitForAllAngular2 = function(callback) {
try {
var testabilities = window.getAllAngularTestabilities();
var count = testabilities.length;
var decrement = function() {
count--;
if (count === 0) {
callback();
}
};
testabilities.forEach(function(testability) {
testability.whenStable(decrement);
});
} catch (err) {
callback(err.message);
}
};

Taken from Protractor source code . Protractor 是 WebDriverJS javascript selenium 绑定(bind)的包装器;旨在测试 AngularJS 应用程序(不仅是,而且最适合)。

关于selenium - 检测到 Angular 2 已完成运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38111005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com