使用Chrome配置文件时Selenium崩溃,如何为Selenium实例添加配置文件?
解决Selenium启动Chrome配置文件后崩溃的问题
错误原因分析
出现DevToolsActivePort file doesn't exist崩溃,核心原因是Chrome用户数据目录被占用,或者启动参数配置不当,导致Selenium无法正常连接Chrome的调试端口。
分步解决方案
关闭所有Chrome进程
- 打开任务管理器,终止所有
chrome.exe进程。Selenium使用用户数据目录时,不能有其他Chrome实例占用该目录,否则会触发文件锁冲突,直接导致崩溃。
- 打开任务管理器,终止所有
修正用户数据目录参数
- 你当前的
user-data-dir末尾多了一个冗余反斜杠,修正为正确路径格式:options.add_argument(r"user-data-dir=C:\Users\F\AppData\Local\Google\Chrome\User Data") - 原始字符串
r""已能正确处理路径中的空格,无需额外转义。
- 你当前的
添加稳定启动参数
- 补充几个参数避免调试端口冲突和沙箱限制:
options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") options.add_argument("--remote-debugging-port=9222") # 指定固定调试端口
- 补充几个参数避免调试端口冲突和沙箱限制:
完整修正代码
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager options = Options() options.add_experimental_option("detach", True) # 修正用户数据目录路径 options.add_argument(r"user-data-dir=C:\Users\F\AppData\Local\Google\Chrome\User Data") options.add_argument("--profile-directory=Profile 1") # 加入稳定参数 options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") options.add_argument("--remote-debugging-port=9222") driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options) driver.get("https://google.com") # 补全协议头,确保正常加载 driver.maximize_window()
额外检查项
- 确认
Profile 1目录确实存在于C:\Users\F\AppData\Local\Google\Chrome\User Data下; - 如果问题依旧,尝试复制
Profile 1到非系统目录(比如D:\ChromeProfiles\Profile1),修改user-data-dir指向新路径,避免原目录被系统进程占用。
内容的提问来源于stack exchange,提问作者forreno
相关产品推荐
相关产品推荐

