selenium使用已打开的浏览器

最后更新: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 参数项,此项为非必填,注意该参数项后的文件路径得事先存在:

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连接处于远程调试状态的浏览器实例

注意:实测,最好指定 service ,不然 selenium 很有可能找不到浏览器实例

from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.webdriver.edge.service import Service

if __name__ == '__main__':
    chrome_options = Options()
    chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
    driver = webdriver.Edge(service=Service(r'./res/msedgedriver.exe'), options=chrome_options)
    # 输出标签的标题
    print(driver.title)

运行上方python代码,将会输出处于远程调试的浏览器实例的窗口title:

 

posted @ 2024-02-19 12:50  Igigi  阅读(3053)  评论(0)    收藏  举报