当前位置: 首页 > 知识库问答 >
问题:

如何在Phantom上清理localstorage和sessionstorage?

凤修筠
2023-03-14
 onPrepare: function () { browser.executeScript("return window.localStorage.clear();"); }

然而,它没有工作,而不是我得到了这个错误

var模板=新错误(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)”},[]}“、”URL“:”/execute“、”urlparsed“:{”锚点“:”“”、“查询”:“”、“文件”:“execute”、“目录”:“/”、“路径”:“/execute”、“相对”:“/execute”、“端口”:“”主机“:”/execute“、”密码“:”“用户”:“”“用户信息”:“”“”权限“:”“协议”:“”“源”:“/execute”、“查询键”:{}、“块”:[“execute”]}、“urloriginent”:“49f0/execute”}}生成信息:版本:'2.51.0',修订:'1AF067D',时间:'2016-02-0519:15:17'驱动程序信息:驱动程序。版本:未知

共有1个答案

曾苗宣
2023-03-14

和您一样,我也看到了大量关于调用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是否存在,并将其删除。这将为您清除本地存储。

 类似资料:
  • 问题内容: 我希望将数据保留在localStorage中多长时间。一般用户的localStorage数据将保留多长时间?如果用户不清除它,它将持续到重新安装浏览器? 跨浏览器是否一致? 问题答案: W3C草案对此表示 用户代理应仅出于安全原因或在用户要求时才使本地存储区中的数据过期。用户代理在运行可访问该数据的脚本时应始终避免删除数据。 因此,如果浏览器遵循该规范,则该规范应一直保留到用户在所有浏

  • 我刚刚注意到我的笔记本电脑上的磁盘空间用完了。通过发现,Docker使用了很多: 文件夹包含152个以结尾的文件夹。 我已经运行了以下命令来清理 什么是,为什么它会消耗那么多空间,我如何清理它? 我有Docker版本17.06.1-CE,版本874A737。它是在一次清理之后发生的,所以这肯定还是一个问题。

  • null 正如https://stackoverflow.com/a/51845202/2674303的注释中提到的,我可以在metadataStore表中添加额外的列,在该列中我可以标记消息是否已处理。根本不是问题。但是我如何在我的清洁器中使用这个标志呢?MetadataStore只有键和值

  • 我希望在浏览器选项卡之间共享身份验证令牌,建议使用HTML5。但是,我不希望在浏览器关闭时,与身份验证相关的任何内容都留在我的存储中,这建议使用HTML5。 与本主题相关的参考资料1(点击): 其他网站是如何解决这个看似简单的问题的。

  • Phantom — 唯一零 Hook 稳定占坑类 Android 热更新插件化方案 Phantom 是满帮集团开源的一套稳定、灵活、兼容性好的 Android 插件化方案。 Phantom 的优势 兼容性好:零 Hook,兼容 Android 4.0 ~ Android Q beta 4(final APIs) 功能完整:插件支持独立应用的绝大部分特性 稳定可靠:历经货车帮旗下多款产品 50+ 插

  • 我总是在Jest测试中得到“localstorage is not defined”,这很有意义,但我有什么选择呢?撞上砖墙。