selenium – 检测Angular 2是否已运行

前端之家收集整理的这篇文章主要介绍了selenium – 检测Angular 2是否已运行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们使用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,您应该等待所有Angular 2应用程序的稳定性为 “testabilities”
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);
  }
};

量角器是围绕WebDriverJS javascript selenium绑定的包装器;旨在测试AngularJS应用程序(不仅是,但最适合).

猜你在找的Angularjs相关文章