关于angularjs:如何在Protractor中启动任何测试用例之前运行javascript函数?

How to run a javascript function before starting any test case in Protactor?

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


默认情况下,protractor正在与angular同步,这使其等待$ http或$ timeout,您可以使用以下方法检查此特定页面上的情况:调试protractor到angular同步问题的规范方法

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

protractor.config.js

1
2
3
4
5
6
7
8
9
10
11
12
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);
}