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

使用Selenium同时启动两次Chrome时仅首个实例可加载URL的问题求助

问题诊断与解决方案

你遇到的问题核心是同一个Chrome用户数据目录(--user-data-dir指定的路径)不能被多个Chrome实例同时占用——即使你切换了不同的--profile-directory,整个用户数据目录会被第一个启动的Chrome进程锁定,第二个实例无法获取访问权限,因此报错提示"Opening in existing browser session",最终启动失败。

解决方案1:为每个实例使用独立的用户数据目录

不要共用同一个主用户数据目录,为每个Chrome实例单独创建专属的用户数据文件夹,彻底隔离实例间的资源占用:

第一个实例代码:

options = webdriver.ChromeOptions() 
options.add_experimental_option('detach', True)
# 第一个实例用专属目录
options.add_argument('--user-data-dir=C:\Users\something\AppData\Local\Google\Chrome\Instance1')
driver1 = webdriver.Chrome(options=options)
driver1.get('https://google.com/')

第二个实例代码:

options = webdriver.ChromeOptions() 
options.add_experimental_option('detach', True)
# 第二个实例用另一个专属目录
options.add_argument('--user-data-dir=C:\Users\something\AppData\Local\Google\Chrome\Instance2')
driver2 = webdriver.Chrome(options=options)
driver2.get('https://google.com/')

解决方案2:使用临时用户数据目录(适合无需保留配置的场景)

如果不需要保留浏览器的配置、缓存等数据,可以让Selenium自动生成临时用户数据目录,只需去掉--user-data-dir和--profile-directory参数:

# 第一个实例
options1 = webdriver.ChromeOptions() 
options1.add_experimental_option('detach', True)
driver1 = webdriver.Chrome(options=options1)
driver1.get('https://google.com/')

# 第二个实例
options2 = webdriver.ChromeOptions() 
options2.add_experimental_option('detach', True)
driver2 = webdriver.Chrome(options=options2)
driver2.get('https://google.com/')

这种方式每次启动都会创建全新的临时目录,天然隔离实例间的资源冲突。

补充说明

你之前用--profile-directory切换配置文件的思路本身没问题,但必须搭配独立的--user-data-dir使用——同一个user-data-dir下的所有配置文件共享同一个锁文件,多个实例无法同时访问该目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:12:11