You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python版Selenium操作已打开的Firefox或Chrome浏览器窗口

Selenium复用已打开浏览器实现重复搜索方案(Chrome优先,操作更简单)

核心逻辑是给浏览器开启远程调试端口,Selenium直接连接已启动的浏览器实例,不需要重新启动浏览器、重走登录流程。

1. 启动带调试端口的Chrome

首先找到Chrome安装路径,在终端/命令行执行启动命令,开启9222调试端口,同时指定独立的用户配置目录(避免和你日常使用的Chrome配置冲突):

  • Windows系统命令:
    "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="C:\selenium_chrome_temp"
  • Mac系统命令:
    /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir="/tmp/selenium_chrome_temp"
  • Linux系统命令:
    google-chrome --remote-debugging-port=9222 --user-data-dir="/tmp/selenium_chrome_temp"

执行命令后会弹出新的Chrome窗口,全程不要关闭这个命令行窗口,也不要关闭弹出的Chrome,后续所有操作都在这个窗口里执行。你可以第一次先手动/运行一次初始程序走完登录流程,后续不用再登录。

2. 安装依赖库

运行命令安装所需依赖,自动适配Chrome驱动版本:
pip install selenium webdriver-manager

3. 复用浏览器执行搜索的代码示例

代码支持从命令行传入搜索参数,直接在已打开的Chrome中执行操作:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import sys

# 读取传入的搜索参数,示例为从命令行第一个参数获取,你也可以改成从配置文件、接口等位置读取
search_keyword = sys.argv[1] if len(sys.argv) > 1 else "默认搜索关键词"

# 配置Selenium连接已启动的Chrome
chrome_opt = Options()
chrome_opt.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
# 初始化驱动,这一步不会新开浏览器,直接关联之前打开的Chrome窗口
driver = webdriver.Chrome(options=chrome_opt)

# 以下替换为你自己的搜索逻辑,和你之前写的操作代码完全一致
# 示例为百度搜索,你可以改成自己的目标网站定位逻辑
driver.get("https://www.baidu.com")
input_box = driver.find_element(By.ID, "kw")
input_box.clear()
input_box.send_keys(search_keyword)
input_box.send_keys(Keys.ENTER)

# 不要执行 driver.quit() ,执行完代码浏览器会保持打开,等待下一次任务

4. 运行方式

每次要执行新搜索,直接在命令行传入参数运行代码即可,比如:
python your_script.py 新的搜索词

可选:Firefox适配方案

逻辑和Chrome完全一致,仅修改两处即可:

  1. 启动Firefox时加调试参数:firefox --remote-debugging-port=9222
  2. 代码中替换为Firefox的配置:
from selenium.webdriver.firefox.options import Options
firefox_opt = Options()
firefox_opt.debugger_address = "127.0.0.1:9222"
driver = webdriver.Firefox(options=firefox_opt)

内容的提问来源于stack exchange,提问作者cbasito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 03:15:01