【问题标题】:Should Protractor See Chrome's Local Storage?Protractor 应该看到 Chrome 的本地存储吗?
【发布时间】:2015-08-05 19:06:00
【问题描述】:

我进行量角器测试(完全不相关的示例):

describe('Test something.', function(){
    it('Should do something', function(){
        browser.get('http://localhost:22222/something');
    });
})

这会将我带到我们的登录页面而不是“某事”页面(检查本地存储是否有令牌,但没有找到)。我已经登录并在 Chrome 上的 LS 中有信息。我不明白为什么测试没有看到它——我认为 Chrome 驱动程序在实际的 Chrome 上运行,所以它应该使用与 Chrome 相同的本地存储......因为它是,你知道的......Chrome。

【问题讨论】:

    标签: javascript google-chrome selenium protractor


    【解决方案1】:

    它与我“手动”运行的 Chrome 相同,它确实共享本地 存储?

    不,当您运行 protractor 时,最初启动的 Chrome 是一个“全新”的干净 Chrome,带有空的本地存储、空的 cookie 等。

    但是,您始终可以使用以下“帮助器”对象来验证和管理本地存储:

    "use strict";
    
    var LocalStorage = function () {
        this.getValue = function (key) {
            return browser.executeScript("return window.localStorage.getItem('" + key + "');");
        };
    
        this.get = function () {
            browser.executeScript("return window.localStorage;");
        };
    
        this.clear = function () {
            browser.executeScript("return window.localStorage.clear();");
        };
    };
    
    module.exports = new LocalStorage();
    

    另见:

    【讨论】:

    • 谢谢你,但我的理论问题仍然存在 - 我“手动”运行的是同一个 Chrome,它是否共享本地存储? IE。如果我通过量角器脚本在 Chrome 中设置本地存储,关闭浏览器,然后从开始菜单或桌面打开 Chrome,它应该设置 LS 吗?反之亦然。
    • @VSO 我已经稍微改进了答案。请注意,如果您想跳过“auth”部分,请将令牌放入本地存储中,例如 onPrepare()beforeEach()。然后浏览器会在测试运行期间从一个规范重新启动到另一个规范,但令牌值将存在于本地存储中。
    • 知道了,感谢您的编辑 - 这正是我所需要的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2017-06-03
    • 2017-09-01
    • 2016-04-29
    • 2020-09-12
    • 2021-04-17
    • 1970-01-01
    • 2020-08-21
    • 2012-04-25
    相关资源
    最近更新 更多