使用Rod库的openbrowser函数打开Google Chrome为何依赖leakless.exe?
解决Rod库OpenBrowser依赖leakless.exe被杀毒误删的问题
在Golang中使用Rod库的OpenBrowser函数启动Google Chrome时,该功能默认依赖leakless.exe管理浏览器进程,但部分杀毒软件会将这个文件误判为恶意程序删除,且无法添加信任规则,导致调用OpenBrowser时直接报错,无法正常完成浏览器自动化操作。
针对这个问题,有几种可行的解决方式:
跳过leakless,直接连接调试中的Chrome
手动启动Chrome并开启远程调试模式,让Rod直接连接到这个调试端口,完全绕过leakless的依赖:- 打开命令行,执行Chrome的启动命令:
chrome.exe --remote-debugging-port=9222 - 在Go代码中直接连接到该调试端口:
package main import "github.com/go-rod/rod" func main() { // 连接已开启调试的Chrome实例 browser := rod.New().ControlURL("http://localhost:9222").MustConnect() defer browser.MustClose() // 打开目标网页 page := browser.MustPage("https://www.google.com") page.MustWaitLoad() }
- 打开命令行,执行Chrome的启动命令:
手动指定浏览器路径,禁用leakless
通过Rod的配置项直接指定Chrome的可执行文件路径,并禁用leakless的使用:package main import "github.com/go-rod/rod" func main() { browser := rod.New(). // 指定Chrome的绝对路径 Bin("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"). // 禁用leakless Leakless(false). MustConnect() defer browser.MustClose() page := browser.MustPage("https://www.google.com") page.MustWaitLoad() }自行编译leakless.exe
从Rod的官方仓库中获取leakless的源码,在本地环境编译生成leakless.exe替换原文件。由于自定义编译的程序特征与官方预编译版本不同,部分杀毒软件会降低误判概率。
内容的提问来源于stack exchange,提问作者XZZ
相关产品推荐
相关产品推荐

