我正在幻影和量角器的帮助下进行e2e测试,但是每次我对代码进行更改(而不是e2e测试代码)时,似乎幻影没有采取新的更改或清理localStorage和SessionStorage . 我认为它可能是缓存,但我不确定 .
我试图在我的protractor.config文件中添加下一句,以便清理LocalStorage .
onPrepare: function () { browser.executeScript("return window.localStorage.clear();"); }
但是,它没有用,而是我得到了这个错误
var template = new Error(this.message); ^ UnknownError:{“errorMessage”:“SecurityError:DOM Exception 18”,“request”:{“headers”:{“Accept-Encoding”:“gzip,deflate”,“Connection”:“Keep-Alive”,“Content” -Length“:”58“,”Content-Type“:”application / json; charset = utf-8“,”Host“:”localhost:9781“,”User-Agent“:”Apac he-HttpClient / 4.5 . 1(Java / 1.7.0_79)“},”httpVersion“:”1.1“,”方法“:”POST“,”post“:”{\“script \”:\“return window.localStorage.clear(); \ “\ ”ARGS \“:[]}”, “URL”: “/执行”, “urlParsed”:{ “锚”: “”, “查询”: “”, “文件”: “执行”, “directory”:“/”,“path”:“/ execute”,“relative”:“/ execute”,“port”:“”,“host”:“”,“password”:“”,“user” : “”, “用户信息”: “”, “权威”: “”, “协议”: “”, “源”: “/执行”, “queryKey”:{}, “块”:[ “执行”] },“urlOriginal”:“/ session / dc9ce280-e15f-11e5-911a-4b92e3de49f0 / execute”}}构建信息:版本:'2.51.0',修订版:'1af067d',时间:'2016-02-05 19 :15:17'驱动程序信息:driver.version:未知
1 回答
和你一样,我也看到很多建议叫
window.localStorage.clear()
来清除PhantomJS中的本地存储 . 但是这里's the deal -- if you'正在远程域上进行测试,这段代码会引发安全异常,因为浏览器(不应该)允许跨域清除本地存储数据 .但是,您可以控制在测试计算机上写入本地存储的数据文件所在的位置 . 那将是
--local-storage-path
(命令行参数)或(在C#中,Java类似):使用名称[domain] .localstorage保存本地存储文件 . 在运行每个测试之前,检查您指定的文件夹中是否存在文件* .localstorage,并将其删除 . 这将为您清除本地存储空间 .