Phantomjs 如何清理phantom上的本地存储和会话存储?

Phantomjs 如何清理phantom上的本地存储和会话存储?,phantomjs,protractor,Phantomjs,Protractor,我在幻影和量角器的帮助下做e2e测试,但每次都是这样 我对我的代码(不是e2e测试代码)做了一个更改,但幻影似乎没有 进行新更改或清理本地存储和会话存储。我想可能是缓存,但我不确定 为了清理本地存储,我尝试在我的dragrator.config文件中添加下一句话 onPrepare: function () { browser.executeScript("return window.localStorage.clear();"); } 然而,它没有工作,相反,我得到了这个错误 var te

我在幻影和量角器的帮助下做e2e测试,但每次都是这样 我对我的代码(不是e2e测试代码)做了一个更改,但幻影似乎没有 进行新更改或清理本地存储和会话存储。我想可能是缓存,但我不确定

为了清理本地存储,我尝试在我的dragrator.config文件中添加下一句话

 onPrepare: function () { browser.executeScript("return window.localStorage.clear();"); }
然而,它没有工作,相反,我得到了这个错误

var template=新错误(this.message);^未知错误: {“errorMessage”:“SecurityError:DOM异常 18、“请求”:{“头”:{“接受编码”:“gzip,deflate”,“连接”:“保持活动状态”,“内容长度”:“58”,“内容类型”:“应用程序/json”; 字符集=utf-8,“主机”:“本地主机:9781”,“用户代理”:“亚太地区” 他是HttpClient/4.5.1 (Java/1.7.0_79)},“httpVersion”:“1.1”,“方法”:“POST”,“POST”:“{\”脚本\“:\”返回 window.localStorage.clear();\”,\“args\”:[]},“url”:“/execute”,“urlParsed”:{“anchor”:“,“query”:“,“file”:“execute”,“directory”:“/,“path”:“/execute”,“relative” “:”/execute“、”port“、”host“、”password“、”user“、”userInfo“、”authority“、”protocol“、”source“、”execute“、”queryKey“{}、”chunks“、”execute“、”urlOriginal“、”session/dc9ce280-e15f-11e5-911a-4b92e3de49f0/execute”}” 构建信息:版本:'2.51.0',修订版:'1af067d',时间:'2016-02-05 19:15:17'驱动程序信息:驱动程序。版本:未知


和您一样,我也看到了很多建议,可以调用
window.localStorage.clear()
来清除PhantomJS中的本地存储。但这里有一个交易——如果您在远程域上进行测试,这段代码将引发一个安全异常,因为浏览器(不应该)允许跨域清除本地存储数据

但是,您可以做的是控制在您的测试机上写入本地存储的数据文件的位置。这将是
——本地存储路径(命令行参数)或(在C#中,类似Java):


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

像您一样,我也看到了很多建议,可以调用
window.localStorage.clear()
来清除PhantomJS中的本地存储。但这里有一个交易——如果您在远程域上进行测试,这段代码将引发一个安全异常,因为浏览器(不应该)允许跨域清除本地存储数据

但是,您可以做的是控制在您的测试机上写入本地存储的数据文件的位置。这将是
——本地存储路径(命令行参数)或(在C#中,类似Java):

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

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