chromedriver版本必须与chrome浏览器主版本号严格匹配,否则会导致webdriverexception等异常;推荐使用webdriver-manager自动管理驱动版本并显式传入service对象。

ChromeDriver版本必须和Chrome浏览器严格匹配
不匹配的驱动和浏览器会导致 WebDriverException、浏览器闪退、页面空白或元素无法定位。这不是“差不多就行”的事,而是硬性约束。
查当前Chrome版本:在浏览器地址栏输入 chrome://version,看第一行“Google Chrome”后的数字(如 126.0.6478.127);
查对应ChromeDriver版本:访问 https://chromedriver.chromium.org/ 或国内镜像 https://npmmirror.com/mirrors/chromedriver/,找与主版本号一致的驱动(例如 Chrome 126.x → 必须用 ChromeDriver 126.x);
- 不要下载最新版驱动就以为万事大吉——它可能只适配尚未发布的 Chrome Canary 版本
- 不要手动解压后扔进任意目录就完事——路径没加到环境变量或没显式指定,
webdriver.Chrome()会直接报FileNotFoundError - Windows 下注意区分
chromedriver.exe和chromedriver(Linux/macOS 无 .exe 后缀)
用 webdriver-manager 自动管理驱动比手动更可靠
手动下载+解压+放路径+更新驱动,是重复劳动且极易出错。尤其当 Chrome 自动升级后,旧驱动立刻失效,而你可能几天后才发现测试全挂了。
webdriver-manager 能在运行时自动检测本地 Chrome 版本,并下载、缓存、提供对应驱动路径,省去所有手动环节:
- 安装:
pip install webdriver-manager - 使用示例(Python):
from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
- 它默认缓存驱动到用户目录(如
~/.wdm),下次运行直接复用,不重复下载 - 支持
ChromeDriverManager(version="126.0.6478.127")锁定特定版本,适合 CI 环境要求确定性
不把 chromedriver 放进 PATH 也能跑,但得显式传 service 参数
很多人卡在“明明放了 chromedriver.exe 到 Python\Scripts 目录,却还是报找不到驱动”,根本原因是 Windows 的 PATH 没生效,或者用了虚拟环境导致路径隔离。
下载 Comet AI 浏览器,体验由 Perplexity AI 驱动的革命性上网方式。内置 AI 助手可实时总结网页、跨标签页对比信息、自动执行任务。告别繁琐操作,让 AI 成为你的浏览副驾,大幅提升研究与工作效率。支持 Windows、macOS、Android 和 iOS。
最稳妥的做法不是依赖 PATH,而是显式构造 Service 对象:
- 如果驱动放在项目根目录:
Service("./chromedriver.exe") - 如果驱动放在绝对路径:
Service(r"C:\tools\chromedriver.exe")(注意 Windows 路径用原始字符串或双反斜杠) - 避免用
executable_path=...(Selenium 4.10+ 已弃用,会触发 DeprecationWarning) - 确保文件有执行权限(Linux/macOS 上可能需
chmod +x chromedriver)
验证环境是否真通,别只靠打开空白页
成功执行 webdriver.Chrome() 并弹出浏览器,不代表环境就 OK。很多问题要等真正操作页面才暴露。
最小有效验证脚本应包含三步:
- 访问一个真实网页:
driver.get("https://httpbin.org/html") - 尝试定位一个稳定元素:
driver.find_element("tag name", "h1") - 读取文本并打印:
print(el.text)
如果这三步都通过,说明驱动通信、页面加载、基础定位全部正常。只弹窗不访问、不交互,等于没验。
Chrome 自动更新快,驱动匹配是持续性工作,不是搭完就一劳永逸的事。每次 Chrome 升级后,要么让 webdriver-manager 自动应对,要么手动核对版本并更新驱动——这个动作没法跳过。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










