selenium接管已经打开的Chrome浏览器

该文介绍了如何配置和使用Selenium来接管一个已存在的Chrome浏览器实例。首先在D盘创建一个名为AutomationProfile的文件夹作为用户数据目录,然后通过命令行以特定端口(9527)和该目录启动Chrome的调试模式。接着在Python代码中,利用Selenium的Options类设置调试器地址,成功连接到已打开的浏览器并访问网址。
部署运行你感兴趣的模型镜像

selenium接管已经打开的Chrome浏览器

1.创建文件夹

在电脑的D盘创建一个文件夹。
例如:在D盘创建了一个名为“AutomationProfile”的文件夹,路径为 D:\AutomationProfile

2.找到谷歌浏览器路径

谷歌浏览器快捷方式点击右键,选择属性,打开文件所在位置

在这里插入图片描述

3.在谷歌浏览器路径下打开命令提示符

在谷歌浏览器路径下打开cmd窗口

4.输入指令

cmd窗口中输入:chrome.exe --remote-debugging-port=9527 --user-data-dir=“D:\AutomationProfile” ,并回车。
这句代码的意思是启动 chrome浏览器 的调试模式。

  • user-data-dir=“D:\AutomationProfile” 其中的 D:\AutomationProfile 就是刚才新创建文件夹的路径。
  • 其中 9527 为端口号,可自行指定。

如果成功,就会看到已经打开新的浏览器窗口。

5.运行代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from time import sleep
from selenium.webdriver.common.by import By

options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9527")
driver = webdriver.Chrome(options=options)

url = 'https://www.baidu.com'
driver.get(url)

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 如何使用 Selenium 接管一个已经打开浏览器实例 Selenium 本身并不直接支持接管一个已经打开浏览器实例,因为 WebDriver 的设计原则是每次启动一个全新的浏览器会话。然而,通过一些技巧和工具,可以实现类似“接管浏览器实例的效果。 #### 1. 使用 `--remote-debugging-port` 启动浏览器并连接调试端口 Chrome 和 Edge 浏览器支持通过指定调试端口启动浏览器,这样可以通过 Selenium 连接到该端口并控制已经打开浏览器。 ##### 示例(Chrome): ```python from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") driver = webdriver.Chrome(options=chrome_options) ``` 在运行上述代码之前,需要手动启动 Chrome 浏览器,并指定调试端口: ```bash chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\path\to\your\custom\profile" ``` - `--remote-debugging-port=9222` 表示启用调试端口。 - `--user-data-dir` 指定用户数据目录,避免影响默认配置。 通过这种方式,Selenium 可以连接到已经打开浏览器实例并执行自动化操作[^1]。 #### 2. 使用 DevTools 协议进行高级控制 Selenium 4 引入了对 Chrome DevTools 协议的支持,可以更精细地控制浏览器行为,包括与已打开页面的交互。 ##### 示例(使用 DevTools API): ```python from selenium import webdriver driver = webdriver.Chrome() driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", { "source": """ console.log('This script runs before page load'); """ }) ``` 虽然这种方式不能直接“接管”已有页面,但可以注入脚本并控制后续页面加载行为。 #### 3. 使用自动化工具组合(如 Pyppeteer 或 Playwright) 如果需要更灵活地控制浏览器实例,可以考虑使用其他工具(如 Puppeteer 的 Python 实现 Pyppeteer 或 Playwright),它们原生支持接管浏览器实例并提供更丰富的调试接口。 ##### 示例(使用 Pyppeteer): ```python import asyncio from pyppeteer import launch async def connect_to_browser(): browser = await launch(browserWSEndpoint='ws://127.0.0.1:9222/devtools/browser') page = await browser.newPage() await page.goto('https://example.com') await page.screenshot({'path': 'example.png'}) asyncio.get_event_loop().run_until_complete(connect_to_browser()) ``` 这种方式允许通过 WebSocket 连接到已打开浏览器实例,并进行自动化操作。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值