在 AngularJS 应用程序的量角器测试中访问 localStorage
Posted
技术标签:
【中文标题】在 AngularJS 应用程序的量角器测试中访问 localStorage【英文标题】:Accessing localStorage in Protractor test for AngularJS application 【发布时间】:2014-03-24 12:17:38 【问题描述】:我正在编写一些测试来验证输入数据是否正确存储在本地存储中,如何从量角器测试中访问 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();
【讨论】:
出于某种原因,getItem 的两种方法都检索了一个未定义的对象,无论如何,在我清楚地将值插入本地存储之后。这是否已经被弃用(量角器 3.3、茉莉花 2.4、角度 1.5.6)?以上是关于在 AngularJS 应用程序的量角器测试中访问 localStorage的主要内容,如果未能解决你的问题,请参考以下文章