Chrome 136版本/json/version接口失效,如何获取webSocketDebuggerUrl?
问题解决:Chrome 136远程调试连接失败及配置修正
核心变更说明
Chrome 135及以上版本(含你使用的136.0.7103.49)对远程调试的安全策略做了调整:默认仅允许浏览器自身发起的请求访问调试接口,非浏览器客户端(比如你的程序、curl、Postman)的请求会被直接拒绝,导致ERR_CONNECTION_REFUSED错误。
解决方案
1. 修正Chrome启动命令
在原有启动参数基础上,添加--remote-allow-origins=*参数,完整命令如下:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --profile-directory="Default" --remote-allow-origins=*
注:如果需要更严格的安全控制,可以将
*替换为具体允许的源,比如--remote-allow-origins=http://127.0.0.1,调试场景下用*更便捷。
2. 获取webSocketDebuggerUrl
启动Chrome后,重新访问http://127.0.0.1:9222/json/version即可正常获取webSocketDebuggerUrl值,后续PuppeteerSharp的连接代码无需修改,直接传入该值即可:
_browser = await Puppeteer.ConnectAsync(new() { BrowserWSEndpoint = webSocketDebuggerUrl // 从/json/version接口获取的值 });
额外说明
- 无需更换端口或修改防火墙规则,核心问题是安全策略变更导致的访问限制
- 不需要降级Chrome版本,添加上述参数即可恢复原有调试流程
内容的提问来源于stack exchange,提问作者bankangle
相关产品推荐
相关产品推荐

