- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要将网络选项卡中显示的信息记录到一个文件中。我可以通过先触发网络选项卡然后将其导出到文件来实现。但是是否可以在打开 Chrome 时自动运行网络选项卡并将其导出到后台文件?
可以吗?
最佳答案
这取决于您的要求。如果您的扩展涉及 DevTools,因此它是开放的,您可以使用 chrome.devtools.network.getHAR()
获取网络流量的方法。您无需导航到“网络”选项卡。
但是,如果你想在不打开 DevTools 的情况下访问网络数据,则此 API 将不起作用,因为它只公开给 DevTools 实例。有几个可能的选择。
您可以使用 chrome.webRequest
用于拦截每个请求/响应并将您想要/可以添加到对象的任何数据的 API。然后你可以使用 chrome.downloads用于下载数据的 API。在您的情况下,您可以使用数据 URI。
var url = 'data:application/json;base64,' + btoa(data);
chrome.downloads.download({url: url, filename: 'notQuiteAHAR'json'});
我还没有在实践中对此进行测试,我不太确定您是否可以在调用下载之前确定所有请求何时完成。
使用更低的级别chrome.debugger
API,根据@wOxxOm 的评论。调试协议(protocol)一次只允许调试器的一个实例,所以这只有在你没有运行 DevTools 时才会起作用。 API 公开的内容远不止 chrome.webRequest
API,但需要一些工作才能获取您需要的所有数据。
有一个名为 chrome-har-capturer
的存储库,它使用调试协议(protocol)。特别感兴趣的是 har.js
,它使用在调试器 API 中找到的事件来手动构建 HAR。该库的目的是用于远程调试目的,但我相信您可以在扩展中使用调试器 API,因此您可能会使用此存储库的各个方面。
关于google-chrome - 自动记录网络选项卡,无需在 Google Chrome 中打开它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41779817/
我是一名优秀的程序员,十分优秀!