我们正在使用phantomjs测试角度webapp。
控制器代码如下所示:
angular.module('module' ['dependency']).
controller('controller',function ($scope, Model) {
// blah-blah-blah
Model.list() // calls $http.get
.then(); // yadda-yadda-yadda
});
Backend在java中,所以为了测试整个应用程序,我们使用Selenium Webdriver和PhantomJS。 我使用这个片段来检查角度是否已经完成处理它的指令(从protractor源代码中获取)。
var app = angular.element(document.querySelector('#ng-app'));
var $browser = app.injector().get('$browser');
$browser.notifyWhenNoOutstandingRequests(function () {
// callback
});
它工作正常 - 在大多数情况下,它确实可以检测角度处理请求。
问题是有时我的回调似乎在控制器执行之前就会触发。在我注意到这种行为的所有情况下,它都是路线变化。
我已经尝试将alert('');
插入控制器的不同部分以找到它。
所以,问题是 - 我怎样才能在执行控制器功能后执行我的等待代码段?
答案 0 :(得分:2)
Per the GitHub discussion,你提到的问题是PhantomJS特有的。其他环境似乎很好。
警告:我不使用Phantom,这个谈话是1年(截至2014年12月) - 所以这可能不再是一个问题。