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