Selenium-WebDriver配置Chrome用户配置文件时运行异常
解决Selenium加载Chrome用户配置文件报错的问题
之前正常运行的Selenium代码,更新Chrome或Selenium版本后,加载用户配置文件就触发Devtoolsactiveport file doesn't exist、Chrome not reachable这类报错,移除配置参数则恢复正常,可按以下步骤解决:
1. 严格匹配Chrome与ChromeDriver版本
版本不匹配是这类报错的核心诱因之一:
- 打开Chrome,通过「菜单→帮助→关于Google Chrome」查看当前Chrome版本号
- 下载对应版本的ChromeDriver(比如Chrome是126.x,就下载126.x分支的ChromeDriver),替换项目中的驱动文件
- 更省心的方式是用
webdriver-manager自动管理驱动,无需手动下载:
先执行安装命令:pip install webdriver-manager
再修改代码自动拉取对应版本的驱动
2. 关闭所有Chrome进程后再运行
若有Chrome窗口正在运行,默认用户数据目录会被占用,Selenium无法正常加载配置:
- 打开任务管理器,结束所有
chrome.exe进程 - 重新运行你的Selenium代码
3. 复制用户配置目录,规避冲突
直接使用Chrome默认用户目录,容易和日常使用的Chrome进程产生冲突,建议复制一份单独给Selenium使用:
- 把
C:\Users\hp\AppData\Local\Google\Chrome\User Data复制到新路径,比如C:\Users\hp\AppData\Local\Google\Chrome\Selenium_User_Data - 修改代码中
--user-data-dir的参数值为新路径
4. 调整参数组合,避免启动异常
之前使用的参数存在兼容性问题,推荐更稳定的参数组合:
from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager options = webdriver.ChromeOptions() # 使用复制后的独立配置目录 options.add_argument(r"--user-data-dir=C:\Users\hp\AppData\Local\Google\Chrome\Selenium_User_Data") options.add_argument("--profile-directory=Default") # 新版headless模式兼容性更强,替代旧版--headless options.add_argument("--headless=new") # headless模式必须指定窗口大小,否则会出现加载异常 options.add_argument("--window-size=1920,1080") options.add_argument("--disable-dev-shm-usage") options.add_argument("--no-sandbox") # 自动安装对应版本的ChromeDriver browser = webdriver.Chrome(ChromeDriverManager().install(), options=options) browser.get("https://google.com") browser.quit()
补充说明:之前添加的--remote-debugging-port若被其他进程占用,反而会导致Chrome无法连接;旧版--headless模式本身存在配置加载bug,换成--headless=new可解决大部分相关问题。
内容的提问来源于stack exchange,提问作者mu7u
相关产品推荐
相关产品推荐

