如何在 Protractor 中开始任何测试用例之前 运行 一个 javascript 函数?

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

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

默认情况下,量角器与 angular 同步,这使得它等待 $http 或 $timeout 你可以检查这个特定页面上是否是这种情况:

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

protractor.config.js

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);
}