量角器测试、访问和修改 Window 对象属性

Protractor testing, access and modify Window object properties

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

为了设置它,我使用下面的代码,但就我所见,它并没有真正设置 window 对象的真实 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');
    });
});

});

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

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

工作解决方案:

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

看到这里:https://github.com/bolshchikov-public/protractor-best-practices/blob/master/Practices.md#set-screen-size