go-rod / rod

A Chrome DevTools Protocol driver for web automation and scraping.

Home Page:https://go-rod.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

launcher docker 是否支持常驻且直接连接

stevenyangecho opened this issue · comments

Rod Version: v0.116.0

launcher管理的 docker ,我的程序这样启动,进行一系列操作后,如果关闭程序,docker的 浏览器进程也要自动关闭.再次启动我的程序,docker 会另外开一个 浏览器进程. 我的需求是,我的程序关闭不影响docker里面浏览器进程,并且已经打开的浏览器返回一个标识,让我下次程序启动,可以接着这个浏览器的页面继续操作,能否支持我的需求呢,或者我应该怎么办比较好~~

 l := launcher.MustNewManaged("ws://127.0.0.1:7317")
 c := l.MustClient()
 browser := rod.New().Client(c)

你需要自己写一个代理来处理这个再链接,cdp 协议不支持断开连接重连。类似于 tmux 的 attach

谢谢,我应该不需要完整的你那种意义的断开重连,我只需要不把页面关掉即可,然后通过browser.Pages() 取得页面,再操作就行了.
比如说目前手动应该可以实现我的需求

手动启动 浏览器 chrome.ee --remote-debugging-port=9222

然后程序里
rod.New().ControlURL("ws://127.0.0.1:9222")

这样,不管我程序如何重启,浏览器都不关闭,原来的tab都保留

只不过目前rod里launcher Manage 管理起来很先进方便 !看看有没有支持这种模式的~~

manager 目前不支持这种,你可能需要自己改下 manager 的代码。我推荐还是走代理比较好,否则容易内存泄露。

好的,谢谢,那我再研究研究,希望以后官方增加这种管理模式~~