我想使用pyppeteer连接到现有的(已经由用户打开,没有任何额外标志)Chrome 浏览器,这样我就可以控制它。
我以前几乎可以做所有手动操作(例如,在现有的 chrome 中启用远程调试模式),但最好用最少的操作来完成。
为了使用browser.connect
,我需要给它browserWSEndpoint
,相当于webSocketDebuggerUrl
'http://localhost:9222/json/version'下。
我的问题是只有当我运行带有--headless
标签的 chrome 时才能访问“http://localhost:9222/json/version”,否则我无法获取此字符串。
我尝试从 cmd 运行:
chrome --disable-gpu --remote-debugging-port=9222 https://stackoverflow.com
它在打开的 chrome 实例下打开一个新选项卡,但我仍然无法访问“http://localhost:9222/json/version”来获取webSocketDebuggerUrl
(我在尝试访问时得到“ERR_CONNECTION_REFUSED”地址)。
我该怎么做?我在网上找不到任何东西。
编辑(也细化了问题的第一段):
感谢大家的回答,但似乎我最初想做的事情是不可能的。如果不是第一次打开现有的 Chrome (浏览器的第一个实例)并带有--remote-debugging-port=XXXX
允许您远程控制它的标志,则您无法连接到它。一旦打开浏览器的第一个实例 - 它就会锁定浏览器的用户数据,并且不能从命令行将标志添加到浏览器(只能从浏览器本身内部,由用户)。