Javascript $browser.notifywhenOutstandingRequests不存在';不要考虑控制器的功能
我们正在用phantomjs测试angular webapp 控制器代码如下所示:Javascript $browser.notifywhenOutstandingRequests不存在';不要考虑控制器的功能,javascript,angularjs,selenium-webdriver,automated-tests,phantomjs,Javascript,Angularjs,Selenium Webdriver,Automated Tests,Phantomjs,我们正在用phantomjs测试angular webapp 控制器代码如下所示: angular.module('module'['dependency'])。 控制器(“控制器”,功能($scope,Model){ //废话废话 Model.list()//调用$http.get .then();//yadda yadda yadda }); 后端是java的,所以为了测试整个应用程序,我们使用SeleniumWebDriver和PhantomJS。 我使用这个片段来检查angular是否
angular.module('module'['dependency'])。
控制器(“控制器”,功能($scope,Model){
//废话废话
Model.list()//调用$http.get
.then();//yadda yadda yadda
});
后端是java的,所以为了测试整个应用程序,我们使用SeleniumWebDriver和PhantomJS。
我使用这个片段来检查angular是否已经完成了对其指令的处理(从源代码获得)
var-app=angular.element(document.querySelector('ng-app');
var$browser=app.injector().get(“$browser”);
$browser.notifyWhenNoOutstandingRequests(函数(){
//回拨
});
它工作正常-在大多数情况下,它确实可以检测角度处理请求
问题是,有时我的回调似乎在控制器执行之前就启动了。在我注意到这种行为的所有情况下,这都是一种路线改变。
我已尝试插入警报(“”)将>编码到控制器的不同部分以找出答案
因此,问题是-只有在执行了控制器函数之后,我如何才能执行等待的代码段?,,您提到的问题是特定于PhantomJS的。其他环境似乎很好
注意:我不使用幻影,而且这篇演讲已经有一年了(截至2014年12月),所以这可能不再是一个问题。这里也一样。可能与notifywhennoutstandingrequests有关,并请注意,notifywhennoutstandingrequests
是一个私有的、未记录的API函数。您能否对量角器源代码中的代码片段多说一点?我得到的响应是,当使用Selenium的javascript executor中的确切代码时,injector()未定义。@emery,您必须使用与应用程序的根元素或其任何子元素匹配的选择器。元素(null)将返回空数组,而不是引发异常。阵列没有注入器字段,因此出现错误。谢谢ilj。在我的例子中,“html[class*=ng-app]”似乎有效,而“#ng-app”无效。很高兴我仍然能提供帮助