最后更新:2024.02.19 python版本:3.12 selenium版本:4.16.0
在写selenium的时候,调试网页每次都需要新建一个浏览器实例,再打开网页进行操作,比较费时,尤其是在当网页加载特别慢的情况下;
使用 Chrome DevTools 协议就可以让selenium直接使用当前已经打开的处于远程调试的浏览器实例,以下操作以Edge浏览器为例,Chrome亦可使用:
1、使用 DevTools协议 打开一个新的浏览器实例
注意:此步骤,需要先关闭所有开启的Edge浏览器实例,否则,此步骤将不会进行远程调试,而是仅打开一个新的浏览器实例
于cmd程序中,先进入edge.exe程序所在的文件夹下,再执行下方代码:
C:\Program Files (x86)\Microsoft\Edge\Application> msedge.exe --remote-debugging-port=9222
此时会新建一个处于远程调试的浏览器实例,如果想确认调试端口已经打开,请使用 netstat /a 命令查询处于活动状态的端口:
C:\Program Files (x86)\Microsoft\Edge\Application> netstat /a 活动连接 协议 本地地址 外部地址 状态 TCP 0.0.0.0:135 DESKTOP-WISWEL:0 LISTENING TCP 0.0.0.0:443 DESKTOP-WISWEL:0 LISTENING TCP 0.0.0.0:445 DESKTOP-WISWEL:0 LISTENING TCP 127.0.0.1:1471 update:https TIME_WAIT TCP 127.0.0.1:2017 DESKTOP-WISWEL:0 LISTENING TCP 127.0.0.1:4301 DESKTOP-WISWEL:0 LISTENING TCP 127.0.0.1:6972 DESKTOP-WISWEL:0 LISTENING TCP 127.0.0.1:8680 DESKTOP-WISWEL:0 LISTENING TCP 127.0.0.1:9222 DESKTOP-WISWEL:0 LISTENING TCP 127.0.0.1:14147 DESKTOP-WISWEL:0 LISTENING
如是想使用不同的用户数据,来新建一个远程调试浏览器实例,可以使用 --user-data-dir 参数项,此项为非必填,注意该参数项后的文件路径得事先存在:
C:\Program Files (x86)\Microsoft\Edge\Application> msedge.exe --remote-debugging-port=9222 --user-data-dir="D:\Cache\browser_vuser_data\edge_user_01"
信息参考:Microsoft Edge 开发工具协议 - Microsoft Edge Developer documentation | Microsoft Learn
2、使用selenium连接处于远程调试状态的浏览器实例
from selenium import webdriver from selenium.webdriver.edge.options import Options if __name__ == '__main__': chrome_options = Options() chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") driver = webdriver.Edge(options=chrome_options) # 输出接口 print(driver.title)
运行上方python代码,将会输出处于远程调试的浏览器实例的窗口title
标签:浏览器,selenium,TCP,DESKTOP,WISWEL,LISTENING,打开 From: https://www.cnblogs.com/igigi/p/18020841