【问题标题】:Protractor testing, access and modify Window object properties量角器测试、访问和修改 Window 对象属性
【发布时间】:2015-08-31 02:28:01
【问题描述】:

我正在尝试为我们在项目中使用的身份验证编写一个简单的 e2e 测试,身份验证基于设置为 window.localStorage.satellizer_token 的 json Web 令牌。

要设置它,我使用下面的代码,但就我所见,它并没有真正设置窗口对象的真实 localStorage 属性。

describe('login', function () {
it('should set the satellizer token and be allowed to get panel', function () {
    browser.driver.get('http://example.com/');
    browser.driver.executeScript(function () {
        return window.localStorage;
    }).then(function (localStorage) {
        expect(localStorage.satellizer_token).toBe(undefined);
        localStorage.satellizer_token = "eyJ0fdaccKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjE3MjUzIiwiaWF0IjoxNDM0Mzc1NjU3LCJleHAiOjE0NjU5Mjk2NTd9.VbhdWQ_gOb7X8pmOGLDjBKURxcaWQlIXQGvLRansQCphk";
        expect(localStorage.satellizer_token).toBe("eyJ0fdaccKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjE3MjUzIiwiaWF0IjoxNDM0Mzc1NjU3LCJleHAiOjE0NjU5Mjk2NTd9.VbhdWQ_gOb7X8pmOGLDjBKURxcaWQlIXQGvLRansQCphk");
        browser.driver.get('http://example.com/panel');
        expect(browser.driver.getTitle()).toEqual('http://example.com/panel');
        expect(browser.driver.getCurrentUrl()).toEqual('http://example.com/panel');
    });
});

});

我知道已经有类似herehere 的东西,但我能找到的所有示例都是关于仅访问的,我还需要修改窗口属性。

在量角器测试中与窗口对象交互的正确方法是什么?

【问题讨论】:

    标签: javascript angularjs protractor jwt satellizer


    【解决方案1】:

    工作解决方案:

        browser.executeScript(function () {
            window.localStorage.satellizer_token = "eyJ0eXAiOiJKV1QiLCJhbGasdsOiJIUzI1NiJ9.eyJpZCI6IjE3MjUzIiwiaWF0IjoxNDM0Mzc1NjU3LCJleHAiOjE0NjU5Mjk2NTd9.VbhdWQ_gOb7X8pmOGLDjBKURQUQlcAfGSGvLRansQCphk";
        });
    

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 就其外观而言,window 方法只有一组预定义的方法来与 window 对象交互,但它不允许我设置新属性。
      • 准确。因为它返回的是一个接口,定义如下:angular.github.io/protractor/#/…。如果您想以自定义方式管理窗口对象,我会说您现在的做法没问题。我建议您只在执行脚本之外声明回调匿名函数,以便能够更好地重用它,例如:var localStorageSetter = function () { window.localStorage.satellizer_token = 'whatever'; } browser.executeScript(localStorageSetter);
      猜你喜欢
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 2014-01-04
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      相关资源
      最近更新 更多