Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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
Angularjs 在Proactor中启动任何测试用例之前,如何运行javascript函数?_Angularjs_Testing_Protractor_Angularjs E2e_E2e Testing - Fatal编程技术网

Angularjs 在Proactor中启动任何测试用例之前,如何运行javascript函数?

Angularjs 在Proactor中启动任何测试用例之前,如何运行javascript函数?,angularjs,testing,protractor,angularjs-e2e,e2e-testing,Angularjs,Testing,Protractor,Angularjs E2e,E2e Testing,实际上,我正在为一个angular应用程序编写一些测试用例,但是第一页占用了太多的时间和太多的负载,并且有一个用于说明的弹出框。所以我需要在浏览器的localStorage中存储一些值,以使弹出框不可见。那么,在运行任何测试用例之前,我如何运行任何javascript函数呢?默认情况下,量角器与angular同步,这使它等待$http或$timeout。您可以使用以下命令检查此特定页面上的情况: 或者,您可以使用模拟模块注入行为 progrator.config.js 请不要建议使用before

实际上,我正在为一个angular应用程序编写一些测试用例,但是第一页占用了太多的时间和太多的负载,并且有一个用于说明的弹出框。所以我需要在浏览器的localStorage中存储一些值,以使弹出框不可见。那么,在运行任何测试用例之前,我如何运行任何javascript函数呢?

默认情况下,量角器与angular同步,这使它等待$http或$timeout。您可以使用以下命令检查此特定页面上的情况:

或者,您可以使用模拟模块注入行为

progrator.config.js
请不要建议使用beforeach()函数,因为我已经尝试过这个函数,但它对我不起作用。谢谢你的快速回复。现在我尝试了您提供的解决方案,但我需要在内部使用浏览器。运行。那么,如何在浏览器内部使用浏览器呢?我需要在浏览器内部运行browser.executeScript().run方法您可以在
run
块中运行任何代码,无论您在executeScript中输入什么,您都可以在那里执行,但当我尝试访问浏览器内部运行
browser.executeScript(“window.localStorage.setItem”)时,它会抛出错误('my-var','my-val');”;
我已经编辑了我的答案,您只需要跳过
浏览器。executeScript
由于模拟模块将在浏览器中运行,其他所有模块都在量角器实例中运行
onPrepare: function() {
    var doTheFuncyStuff= function() {
        angular
            .module('doTheFuncyStuff', [])
            .run([function(){
              //do something here so the popup isn't displayed
              window.localStorage.setItem('my-var', 'my-val');
            }]);
    };

    browser.addMockModule('doTheFuncyStuff', doTheFuncyStuff);
}