解决 Selenium 中 ChromeDriver 与 Chrome 版本不匹配的错误
问题描述
当使用 Selenium 进行浏览器自动化测试时,常会遇到以下错误提示:
python
selenium.common.exceptions.SessionNotCreatedException:
This version of ChromeDriver only supports Chrome version 114. LATEST_RELEASE_115 doesn't exist
问题核心在于 ChromeDriver 版本与 Chrome 浏览器版本不兼容。此错误通常发生在以下场景:
- Chrome 浏览器自动更新至新版本(如 116+)
- ChromeDriver 未相应更新至匹配版本
- 使用旧版 Selenium(<4.11.2)无法自动处理版本映射关系
版本兼容的重要性
ChromeDriver 与 Chrome 浏览器需严格匹配主版本号(如 Chrome 116 需 ChromeDriver 116)。错位版本将直接导致会话创建失败。
推荐解决方案
✅ 方案一:升级 Selenium 并启用自动驱动管理(推荐)
python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service() # 自动下载匹配驱动
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)
driver.get("https://example.com")
driver.quit()
优势
- 自动处理版本匹配:Selenium ≥4.11.2 通过内置机制自动下载所需 ChromeDriver
- 永久兼容:无需后续手动维护驱动版本
- 代码最简:不需要指定驱动路径
前提条件
- 确保已升级 Selenium:bash
pip install -U selenium==4.11.2 # 最低版本要求
- 检查 Chrome 浏览器版本:
- 访问
chrome://settings/help
确认当前版本
- 访问
✅ 方案二:手动下载匹配驱动
若需控制特定驱动版本:
- 打开 Chrome for Testing 官网
- 选择与您 Chrome 版本匹配的驱动

- 代码中指定驱动路径:
python
from selenium.webdriver.chrome.service import Service
from pathlib import Path
service = Service(executable_path=Path.cwd() / 'chromedriver.exe')
driver = webdriver.Chrome(service=service)
路径建议
将驱动放在项目目录中使用相对路径,避免跨平台路径问题:
python
# Windows 示例
service = Service(executable_path='./drivers/chromedriver_win64.exe')
# Linux 示例
service = Service(executable_path='/usr/bin/chromedriver')
💻 特殊场景:使用 undetected-chromedriver
```python {1,5} import undetected_chromedriver as uc更新库以确保兼容性
pip install -U undetected-chromedriver
driver = uc.Chrome( driver_executable_path='./chromedriver.exe', # 指定驱动路径 version_main=116 # 可选:指定主版本 )
---
## 🛠 辅助工具与命令
### 安装 chromedriver-py 自动管理
```python
pip install chromedriver-py # 安装驱动管理库
python
from selenium import webdriver
from chromedriver_py import binary_path # 自动获取路径
service = webdriver.ChromeService(executable_path=binary_path)
driver = webdriver.Chrome(service=service)
Linux 环境快速配置
bash
wget https://storage.googleapis.com/chrome-for-testing-public/123.0.6312.122/linux64/chromedriver-linux64.zip
unzip chromedriver-linux64.zip
sudo mv chromedriver /usr/bin/ # 添加到系统路径
最佳实践总结
- ⬆️ 始终保持更新:bash
pip install -U selenium
- ☁️ 优先使用自动化管理(方案一),减少手动维护成本
- 🔍 版本检查策略:python
print(driver.capabilities['browserVersion']) # 输出浏览器版本 print(driver.capabilities['chrome']['chromedriverVersion']) # 输出驱动版本
- 📂 手动下载时通过官方渠道获取驱动
- 🚫 不建议关闭浏览器更新 —— 可能导致安全隐患
过时方案警告
避免以下已淘汰方法:
python
# 已弃用的语法(Selenium 3 方式)
driver = webdriver.Chrome(executable_path="driver.exe")
经测试,上述方案适用于 Chrome/Chromedriver 116+ 及 Selenium 4.11.2+ 环境,最后更新于 2024年9月。