当前位置: 首页 > 面试题库 >

检测Angular 2已完成运行

段干博涉
2023-03-14
问题内容

我们使用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;
    }
  }
}

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


问题答案:

如果是Angular 2,则应等待 所有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);
  }
};

摘自量角器源代码。量角器是WebDriverJS
javascript硒绑定的包装器;设计用于测试AngularJS应用程序(不仅,而且 最适合 )。



 类似资料:
  • 问题内容: 好的,我在应用程序代码周围无数次通话, 我想知道是否有什么方法/最佳实践来检测应用程序周围的所有内容何时完成(成功/错误完成与返回什么无关,只需要知道是否完成)? 这样我才能显示加载的gif,直到它们加载为止? 谢谢 问题答案: 像这样做: 然后使用绑定到任何地方的事件(最好在指令中使用):

  • 问题内容: 在我的应用程序中,我尝试为用户打印出凭证页面,如下所示: “ ”是我的页面中的,用于存储有关凭证的信息。 它有效,并且打印页面弹出。但是,我希望用户一旦在浏览器的弹出式打印对话框中单击“ ”或“ ”,便可以升级该应用程序。 例如,我想在弹出窗口关闭后将用户重定向到另一个页面: 如何确定何时关闭弹出的打印窗口或打印完成? 问题答案: 在FireFox和Internet Explorer中

  • 问题内容: 我有一个非常简单和标准的PHP强制下载脚本。 我如何检查是否/何时完成下载以便在客户端通知用户?我什至不需要实时显示进度,我只对非常具体的事件感兴趣:“下载完成时”。根据我的研究,由于没有事件,因此似乎必须从服务器端确定它,而且我认为不可能拦截浏览器事件。 因此,似乎最好的选择是通过某种客户端/服务器端交互比较发送到总字节的字节。我该如何检查从服务器发送的字节以进行PHP强制下载?是否

  • 我在两篇关于堆栈溢出的文章中读到过关于这个问题的文章,但它们没有详细说明。我相信这与在嘲笑中嵌套嘲笑有关(根据我读到的)。然而,我并没有看到或完全理解人们张贴的小片段。 我的测试类如下所示(省略了不必要的代码): 我需要调用的方法:

  • 我有一个舞台,一个场景和一个WebView节点。当我将窗口扩展到更大的尺寸时--由于WebView,事情变得相当缓慢。我想要做的是,只有当窗口的大小调整完成时才填充WebView的新空间(这是我在窗口的可调整大小的控件/边缘上释放鼠标左键)。现在我可以设置最大值。此节点的大小为默认情况下的大小-这将阻止它的扩展。但是如何检测窗口上已完成的调整大小操作的实际事件呢?使用绑定,我可以验证大小调整是否发