Доступ к localStorage в тесте Protractor для приложения AngularJS

Я пишу несколько тестов, чтобы проверить, правильно ли хранятся входные данные в локальном хранилище, как я могу получить доступ к localStorage из теста транспортира?

...
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

Как вы используете executeScript? И могу ли я получить данные из executeScript?

Ответ 1

Чтобы получить элемент из локального хранилища, используйте window.localStorage.getItem() через executeScript():

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

Чтобы удалить локальное хранилище вызов clear():

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

Мы также можем иметь этот вспомогательный объект/оболочку вокруг локального хранилища для удобства:

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