【发布时间】:2020-06-13 07:27:33
【问题描述】:
我知道下面的代码 sn-p 允许我读取所有当前的 cookie:
let Main = await import('./main/main.js');
await Main.MainImpl.sendOverProtocol('Network.getCookies');
现在,出于测试目的,我需要获取所有可用的LocalStorage 条目。我尝试了一些东西,但不幸的是我没有得到它。 Chrome DevTools 本身只使用已经可用的securityOrigin 变量来查询它,我不知道它是从哪里获取的:
我也找到了Page.getFrameTree,但缺少一些条目-所以我认为这与LocalStorage的条目无关:
我缺少的文档中还有其他方法吗?
编辑#1
正如 cmets 中提到的,我让它与 Page.getResourceTree 一起工作。不幸的是,我得到的下一个问题如下:
Protocol error (DOMStorage.getDOMStorageItems): Frame not found for the given security origin.
【问题讨论】:
-
securityOrigin只是 URL 的protocol://hostname:port部分,因此您只需通过Page.getResourceTree枚举页面中的所有框架(这是 devtools 使用的)。 -
@wOxxOm 我刚试过
Page.getResourceTree,不幸的是我从来没有得到https://vars.hotjar.com。原因是vars.hotjar.com的一个脚本是通过https://static.hotjar.com的另一个脚本启动的。 -
在 puppeteer 中执行时页面可能没有创建该框架。也许您需要稍等片刻或滚动页面。另请注意,虽然脚本可以创建框架,但框架与脚本无关。无论如何,这就是 devtools 的工作方式。
-
我让它工作了,但我遇到了一个新错误。我已经编辑了问题。
标签: google-chrome-devtools puppeteer chrome-devtools-protocol