使用Selenium Python打开多个Brave配置文件失败求助
问题排查与修复方案
导致失败的关键原因
- 用户数据目录锁冲突:所有浏览器实例共用同一个
--user-data-dir,Brave会对该目录加锁,同一时间仅允许一个进程访问,后续实例无法获取锁直接退出 - 无独立调试端口:未指定
--remote-debugging-port,多个实例尝试使用默认调试端口,引发端口占用冲突 - 启动初始化干扰:Brave启动时的首次运行引导、默认浏览器检测等流程会中断Selenium会话,导致浏览器异常关闭
修正后的代码
from selenium import webdriver import time from selenium.webdriver.chrome.service import Service drivers = [] # 为每个实例分配唯一的远程调试端口 debug_ports = [9222, 9223, 9224, 9225] for idx in range(4): profile_num = idx + 1 options = webdriver.ChromeOptions() # 替换为你电脑上Brave.exe的绝对路径 options.binary_location = "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe" # 每个实例使用独立的用户数据目录,避免锁冲突 user_data_path = f"C:\\Users\\你的用户名\\AppData\\Local\\BraveSoftware\\Brave-Browser\\User Data\\Instance_{profile_num}" options.add_argument(f"--user-data-dir={user_data_path}") # 指定专属调试端口,防止端口抢占 options.add_argument(f"--remote-debugging-port={debug_ports[idx]}") # 禁用不必要的启动流程,稳定会话 options.add_argument("--no-first-run") options.add_argument("--no-default-browser-check") options.add_argument("--disable-background-networking") # 替换为你chromedriver的绝对路径,确保版本与Brave一致 service = Service("C:\\tools\\chromedriver.exe") driver = webdriver.Chrome(service=service, options=options) driver.get("https://google.com") drivers.append(driver) time.sleep(2) # 用完后记得关闭所有会话 # for driver in drivers: # driver.quit()
重要注意事项
- 路径必须是绝对路径:
binary_location、user_data_path、chromedriver路径都不能用相对路径,否则会找不到文件 - 版本匹配:chromedriver的版本必须和你的Brave浏览器版本完全对应,比如Brave是1.62.x,chromedriver也要用119.x版本(对应Chrome内核版本)
- 预创建配置文件(可选):如果需要使用已有的自定义配置,把现有Profile目录复制到对应的
Instance_{profile_num}目录下即可 - 权限检查:确保Python有读写用户数据目录的权限,否则会出现启动失败
内容的提问来源于stack exchange,提问作者Shaheen
相关产品推荐
相关产品推荐

