如何在幻像上清理localstorage和sessionstorage?

时间:2016-03-03 17:28:30

标签: phantomjs protractor

我在幻影和量角器的帮助下进行e2e测试,但每次都是这样 我对我的代码进行了更改(不是e2e测试代码),似乎幻像不是 采取新的更改或清理localStorage和SessionStorage。我认为它可能是缓存,但我不确定。

我尝试在protractor.config文件中添加下一句,以便清理LocalStorage。

 onPrepare: function () { browser.executeScript("return window.localStorage.clear();"); }

然而,它没有用,而是我得到了这个错误

  

var template = new Error(this.message); ^未知错误:   {“errorMessage”:“SecurityError:DOM异常   18" , “请求”:{ “报头”:{ “的Accept-Encoding”: “gzip的,放气”, “连接”: “保持活动”, “内容长度”: “58”, “内容类型” :“应用程序/ JSON;   字符集= UTF-8" , “主机”: “本地主机:9781”, “用户代理”:“阿帕克   他-的HttpClient / 4.5.1   (爪哇/ 1.7.0_79) “},” httpVersion “:” 1.1" , “方法”: “POST”, “后”: “{\” 脚本\ “:\” 返回   window.localStorage.clear(); \ “\ ”ARGS \“:[]}”, “URL”: “/执行”, “urlParsed”:{ “锚”: “”, “查询”: “”, “文件”: “执行”, “目录”: “/”, “路径”: “/运行”,“相对   “:”/执行 “ ”端口“: ”“, ”宿主“: ”“, ”密码“: ”“, ”用户“: ”“, ”用户信息“: ”“, ”权威“: ”“,”协议 “:” “ ”源“: ”/执行“, ”queryKey“:{}, ”块“:[ ”执行“]} ”urlOriginal“:”/会话/ dc9ce280-e15f-11e5-911a-4b92e3de49f0 /执行”}}   构建信息:版本:'2.51.0',修订版:'1af067d',时间:'2016-02-05   19:15:17'驱动程序信息:driver.version:未知

1 个答案:

答案 0 :(得分:0)

和你一样,我也看到很多建议叫window.localStorage.clear()清除PhantomJS中的本地存储空间。但这是交易 - 如果您在远程域上进行测试,此代码将引发安全异常,因为浏览器(不应该)允许跨域清除本地存储数据。

但是,您可以控制在测试计算机上写入本地存储的数据文件所在的位置。那将是--local-storage-path(命令行参数)或(在C#中,Java类似):

PhantomJSDriverService service =
                       PhantomJSDriverService.CreateDefaultService();
//IMPORTANT: avoid the common pitfall of trying to specify a file name!!
// provide the path to the folder only
service.LocalStoragePath = @"path\to\where\I\want\local-storage\saved;

var driver = new PhantomJSDriver(service);

使用名称[domain] .localstorage保存本地存储文件。在运行每个测试之前,检查您指定的文件夹中是否存在文件* .localstorage,并将其删除。这将为您清除本地存储空间。