gpt4 book ai didi

javascript - 在 PhantomJS 中自动删除 localStorage 文件

转载 作者:行者123 更新时间:2023-11-29 17:00:52 26 4
gpt4 key购买 nike

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

phantom.exit()

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

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

--local-storage-path = path

其次,我使用 PhantomJS 的 page.open 部分使用以下命令清除路径,这对我来说也不起作用。

localStorage.clear();

最佳答案

在完成测试后清除 localStorage 总是好的。你必须记住,你可以同时在 PhantomJS 中打开多个页面,但 localStorage 只绑定(bind)到一个特定的域。

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

page.evaluate(function(){
localStorage.clear();
});

因此每次退出脚本之前,您都应该清除 localStorage(可能多次,具体取决于您访问了多少个域)。或者,您可以尝试在脚本/页面加载开始时执行此操作,但很难做好。一个页面必须已经有一个目标 URL,但该页面还不能加载。否则,clear 可能会在页面 javascript 已经执行时出现。那么每个域应该只执行一次。否则,网站不同页面的导航将会中断。


另一种简单的解决方案是在脚本开头使用 fs 模块删除 Ofi labs 目录中的所有 localStorage 文件,但这可能会删除您不想删除的页面的 localStorage。

关于javascript - 在 PhantomJS 中自动删除 localStorage 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28127341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com