我想连接到一个现有的(已经被用户打开,没有任何额外标志)Chrome浏览器,使用 pyppeteer 所以我将能够控制它。
我可以在之前做几乎所有的手动操作(例如,在现有的chrome中启用远程调试模式),但最好是用最少的操作来完成它。
为了使用
browser.connect
,我需要赋予它
browserWSEndpoint
,这相当于'http://localhost:9222/json/version'下的
webSocketDebuggerUrl
。
我的问题是,只有当我用
--headless
标签运行chrome时,我才能进入'http://localhost:9222/json/version',否则我无法得到这个字符串。
我试着从cmd运行。
【替换代码4
它在打开的chrome实例下打开了一个新的标签,但我仍然无法到达'http://localhost:9222/json/version'以获得
webSocketDebuggerUrl
(当我试图到达该地址时,我得到'ERR_CONNECTION_REFUSED')。
我怎样才能做到这一点?我在网上找不到任何东西。
Edit (also refined the first paragraph of the question):
谢谢大家的回答,但似乎我最初想做的事情是不可能的。你不能连接到一个现有的Chrome浏览器,如果它不是
first opened
(浏览器的第一个实例)的标志
--remote-debugging-port=XXXX
,允许你远程控制它。
一旦浏览器的第一个实例被打开--它就锁定了浏览器的用户数据,并且不能从命令行向浏览器添加标志(只能从浏览器内部,由用户添加)。