Golang Selenium无法获取部分网站性能日志中的网络日志求助
问题排查与解决方案
一、站点2网络日志捕获问题处理
- 确认是否启用
Network.enable命令:如果使用Chrome DevTools Protocol(CDP)类工具,必须显式调用该命令才能触发网络事件上报,若仅启用Page域监听,会导致无法捕获请求日志。 - 检查过滤规则:排查是否设置了
Network.setRequestInterception或过滤参数,导致GET/POST请求被排除在捕获范围外,确认无Network.setFilter类的限制配置。
二、请求体无法获取的解决步骤
- 监听正确的事件节点:要获取POST请求体,需监听
Network.requestWillBeSent事件(而非Network.responseReceived),该事件包含request.postData字段可直接获取请求体;若用页面内JS注入,需在document_start阶段挂载监听,避免请求发送后才触发脚本。 - 处理编码格式:若请求体为JSON或form-data格式,需做对应解析——JSON字符串用
JSON.parse()转换,form-data需手动拆分参数。 - 绕过站点反拦截机制:
- 启动浏览器时添加
--disable-content-security-policy参数,禁用目标站点的内容安全策略。 - 使用无痕模式,排除插件、缓存的干扰。
- 改用CDP直接捕获:CDP的网络事件监听不受页面脚本限制,能更稳定获取请求体数据。
- 启动浏览器时添加
三、特殊场景排查
- 检查Service Worker影响:若站点2使用Service Worker代理请求,需启用
ServiceWorker.enable,并将Network.enable的includeServiceWorkerRequests参数设为true,同时监听ServiceWorker.workerVersionUpdated事件。 - 验证跨域请求状态:若请求为跨域且无合法CORS头,浏览器可能隐藏部分日志信息,先检查控制台是否有CORS报错,同时启用
Network.enable的disableCache参数避免缓存干扰。 - 核对浏览器版本:若站点1、2使用不同浏览器/版本,可能存在API兼容性差异,需适配对应版本的事件字段结构。
内容的提问来源于stack exchange,提问作者QI QI
相关产品推荐
相关产品推荐

