在 PhantomJS 中自动删除本地存储文件
Removing localStorage file automatically in PhantomJS
我正在使用PhantomJS进行测试。我需要PhantomJS在以下命令之后删除与上一个会话相关的所有信息,
phantom.exit()
实际上,它这样做了,实际上会删除所有cookie,缓存和历史记录。但是,它不会自动删除本地存储命令的保存信息。我需要转到保存此信息的默认路径并手动删除文件。我想知道是否有任何自动删除此文件的方法。我测试了以下方法,但没有一种对我有用。
首先,我使用以下命令为这些信息设置了新的路径,但PhantomJS并不在意,只是再次使用了之前保存的信息。
--local-storage-path = path
其次,我使用PhantomJS的page.open部分使用以下命令清除路径,该命令对我也不起作用。
localStorage.clear();
测试后清除 localStorage 总是好的。你必须记住,你可以同时在PhantomJS中打开多个页面,但localStorage只绑定到一个特定的域。
localStorage.clear();
必须在页面上执行,而不是在幻像上下文中执行:
page.evaluate(function(){
localStorage.clear();
});
因此,每次退出脚本之前,都应该清除 localStorage(可能多次,具体取决于您访问的域数量)。或者,您可以尝试在脚本/页面加载开始时执行此操作,但很难做好。网页必须已具有目标网址,但尚无法加载该网页。否则,clear
可能会在页面javascript已经执行的时候出现。那么这可能应该只在每个域执行一次。否则,对网站不同页面的导航将被破坏。
另一个简单的解决方案是使用 fs 模块删除脚本开头 Ofi 实验室目录中的所有 localStorage 文件,但这可能会删除您不想删除的页面的 localStorage。
如果你在 linux x64 上使用 phantomJS 1.9.8,你可以测试这个二进制文件,其中包含 localStoragePath 修复程序: https://github.com/PatrickHuetter/phantomjs/releases/tag/1.9.8-fixedStoragePath
如果你在另一个操作系统上使用phantomjs,你可以签出我的叉子并在你的平台上编译它。 https://github.com/PatrickHuetter/phantomjs/tree/localStoragePathFix
PhantomJS 2.0 已经包含此修复程序,因此如果您使用的是 2.0 版本或更高版本,则可以使用官方二进制文件。
- 使用javascript从本地存储中删除
- 如何从 Django 浏览本地文件并存储文件信息
- 正在添加用于文件删除的eventListener
- 正在创建事件侦听器以从本地存储中删除对象
- 正在从本地windows存储文件夹读取js中的文件
- 在 Java 中使用 IE/Chrome HTML 渲染器或使用 JavaScript 存储文件
- 从本地存储中删除动态显示在
- 中的项目
- 如何最好地在文件删除时触发事件
- 使用 JavaScript 存储、删除和重新应用类属性
- 在 PhantomJS 中自动删除本地存储文件
- 使用 setTimeout() 函数从本地存储中删除项目
- 文件删除 JSON 响应
- 我是否需要在设置项目之前从本地存储中删除项目
- 从 ExtJs 4.1 存储中删除记录时触发哪些事件
- 本地存储循环删除 2 条记录后缺少记录(在不同的页面上)
- 使用 gridfs 和 mongoose 在 MongoDB 中存储文件
- 如何使用 JavaScript 在浏览器中存储文件
- PhoneGap 如何在本地文件系统中存储文件
- PhoneGap本地存储SQL删除句子
- 如何从 Node.js 访问、检索、存储和删除文件到远程文件服务器中