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

如何使用Selenium与已打开的Brave浏览器交互?原方案失效求解决

解决Brave浏览器更新后远程调试端口无法访问的问题

问题根源

新版Brave(基于Chromium 114+内核)对远程调试机制新增安全限制,强制要求使用独立的用户数据目录启动;同时原代码中socket.gethostbyname("localhost:9222")的写法存在错误,导致Selenium无法正确建立连接。

可行解决步骤

1. 修改Brave启动命令

添加--user-data-dir参数指定专属调试目录,避免与默认用户目录冲突:

"C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe" --remote-debugging-port=9222 --user-data-dir="C:\Temp\BraveDebugProfile"

注:C:\Temp\BraveDebugProfile可替换为任意空目录或专门的调试目录,首次启动会自动生成配置文件。

2. 验证远程调试端口可用性

启动Brave后,在浏览器中访问 http://127.0.0.1:9222/json,若返回包含webSocketDebuggerUrl字段的JSON数组,说明远程调试服务正常运行。

3. 修正Selenium连接代码

移除错误的socket.gethostbyname调用,直接指定debuggerAddress为localhost:9222:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

options = Options()
options.binary_location = r"C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe"
options.add_argument("disable-popup-blocking")
# 直接指定调试地址,格式为主机:端口
options.add_experimental_option("debuggerAddress", "localhost:9222")

# 自动匹配兼容版本的ChromeDriver
driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)

额外注意事项

  • 确保ChromeDriver版本与Brave内核版本一致:可在Brave的about:version页面查看内核版本,若ChromeDriverManager自动安装的版本不兼容,可手动下载对应版本的ChromeDriver并指定路径。
  • 检查防火墙设置:确保本地9222端口未被系统防火墙拦截(本地访问概率极低,但可作为排查项)。

内容的提问来源于stack exchange,提问作者Dr.PB

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:05:26