Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $browser.notifywhenOutstandingRequests不存在';不要考虑控制器的功能_Javascript_Angularjs_Selenium Webdriver_Automated Tests_Phantomjs - Fatal编程技术网

Javascript $browser.notifywhenOutstandingRequests不存在';不要考虑控制器的功能

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是否

我们正在用phantomjs测试angular webapp

控制器代码如下所示:

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”无效。很高兴我仍然能提供帮助