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

如何获取已手动打开的Chrome标签URL并通过程序实现交互操作

实现Selenium连接已运行Chrome实例的方案

第一步:启动带远程调试端口的Chrome

  • 先关闭所有正在运行的Chrome进程(包括后台进程,避免端口参数不生效)
  • 按操作系统执行启动命令(路径替换为你本地Chrome的实际安装路径):
    • Windows系统:打开命令提示符执行
      "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
    • Mac系统:打开终端执行
      /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
    • Linux系统:打开终端执行
      google-chrome --remote-debugging-port=9222
  • 启动后你可以正常手动打开目标页面,完成登录等操作,所有已有的登录态都会正常保留。

第二步:编写Python代码连接已运行的Chrome

直接通过调试端口附加到刚才启动的Chrome实例即可,不需要新打开浏览器窗口,示例代码如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By # Selenium4及以上版本需要导入

# 配置调试地址
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

# 初始化driver,此时会直接连接已运行的Chrome
driver = webdriver.Chrome(options=chrome_options)

# 测试:打印当前所有打开的标签页标题
for handle in driver.window_handles:
    driver.switch_to.window(handle)
    print(driver.title)

# 后续可以正常执行元素定位、点击等操作,和常规Selenium用法完全一致
# driver.find_element(By.XPATH, "example_xpath").click()

注意事项

  • 如果使用Selenium4及以上版本,find_element_by_*系列方法已废弃,建议使用By类指定定位方式的写法
  • 如果需要完全保留你平时Chrome的登录缓存、书签等配置,启动带端口的Chrome时不要额外指定--user-data-dir参数,确保使用默认的用户数据目录即可
  • 9222是默认调试端口,你可以替换为其他未被占用的端口,只要代码里的端口和启动参数里的保持一致即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:30:00