Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
474 views
in Technique[技术] by (71.8m points)

javascript - Accessing localStorage in Protractor test for AngularJS application

I am writing some tests to verify that input data is being stored in local storage correctly, how can I access localStorage from within the protractor test?

...
describe('vgPersist', function() {
  it('Should save input data in local storage until form submitted', function() {
    // Prepare Object and Open browser
    var addOns = new AddOns();
    addOns.get();

    -> Clear localStorage
    -> Get from localStorage

How do you use executeScript? And could I get data from an executeScript?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

To get an item from local storage use window.localStorage.getItem() through executeScript():

var value = browser.executeScript("return window.localStorage.getItem('key');");
expect(value).toEqual(expectedValue);

To clear local storage call clear():

browser.executeScript("window.localStorage.clear();");

We can also have this helper object/wrapper around the local storage for convenience:

"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();

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...