Javascript 在PhantomJS中自动删除本地存储文件

Javascript 在PhantomJS中自动删除本地存储文件,javascript,local-storage,phantomjs,Javascript,Local Storage,Phantomjs,我使用PhantomJS进行测试。我需要PhantomJS在执行以下命令后删除与上一个会话相关的所有信息 phantom.exit() 实际上,它会这样做,并且实际上会删除所有cookie、缓存和历史记录。但是,它不会自动删除localStorage命令保存的信息。我需要转到保存此信息的默认路径并手动删除该文件。我想知道是否有任何自动删除此文件的方法。我测试了以下方法,但没有一种对我有效 首先,我使用下面的命令为这些信息设置新的路径,但是PhantomJS并不关心它,只是再次使用了以前保存的信

我使用PhantomJS进行测试。我需要PhantomJS在执行以下命令后删除与上一个会话相关的所有信息

phantom.exit()
实际上,它会这样做,并且实际上会删除所有cookie、缓存和历史记录。但是,它不会自动删除localStorage命令保存的信息。我需要转到保存此信息的默认路径并手动删除该文件。我想知道是否有任何自动删除此文件的方法。我测试了以下方法,但没有一种对我有效

首先,我使用下面的命令为这些信息设置新的路径,但是PhantomJS并不关心它,只是再次使用了以前保存的信息

--local-storage-path = path
其次,我使用PhantomJS的page.open部分来清除路径,使用下面的命令,这对我来说也不起作用

localStorage.clear();

在完成测试后清除本地存储总是很好的。您必须记住,您可以在PhantomJS中同时打开多个页面,但localStorage仅绑定到特定域

localStorage.clear()必须在页面上执行,而不是在虚拟上下文中执行:

page.evaluate(function(){
    localStorage.clear();
});
因此,每次退出脚本之前,都应该清除localStorage(可能会多次,具体取决于您访问的域数)。或者,您可以尝试在脚本/页面加载开始时执行此操作,但很难做到这一点。页面必须已具有目标URL,但无法加载该页面。否则,
清除
可能在页面javascript已经执行时出现。那么每个域可能只需要执行一次。否则,站点不同页面上的导航将被破坏



另一个简单的解决方案是在脚本开始时使用fs模块删除Ofi labs目录中的所有本地存储文件,但这可能会删除不希望删除的页面的本地存储。

如果在linux x64上使用phantomJS 1.9.8,则可以测试包含localStoragePath修复程序的二进制文件:

如果您在另一个操作系统上使用phantomjs,您可以签出my fork并在您的平台上编译它


PhantomJS 2.0已经包含此修复程序,因此如果您使用的是2.0或更高版本,您可以使用官方二进制文件。

谢谢。我在页面的上下文中使用了该命令,但不是在退出phantom之前。谢谢你的帮助。