作为一名长期使用Selenium进行自动化测试的开发者,我经常遇到团队新人提出的第一个问题:"为什么Chromedriver官网打不开?"这确实是个令人头疼的现状——当你按照官方文档指引访问https://sites.google.com/a/chromium.org/chromedriver/时,页面要么长时间加载,要么直接显示连接超时。
问题的根源在于这个域名使用了Google的sites.google.com子域名服务,而该服务在某些网络环境下访问不稳定。更麻烦的是,通过搜索引擎找到的很多教程仍然在引用这个已经不可靠的地址,导致开发者陷入死循环。
重要提示:从Chrome 115版本开始,Chromedriver的发布渠道已经迁移到新的Chrome for Testing服务,旧官网将逐步停止维护。
目前官方推荐的下载地址是:
code复制https://googlechromelabs.github.io/chrome-for-testing/
这个由Chrome团队维护的仓库提供了结构化版本管理,包含:
每个版本都提供:
Chromedriver必须与Chrome浏览器主版本完全一致,否则会报错。推荐以下匹配策略:
查看本地Chrome版本:
bash复制# Windows
chrome.exe --version
# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version
# Linux
google-chrome --version
在版本号页面按格式搜索:
code复制https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json
使用Python自动匹配版本:
python复制import requests
from selenium import webdriver
def get_matching_driver():
chrome_version = webdriver.Chrome().capabilities['browserVersion']
major_version = chrome_version.split('.')[0]
response = requests.get(
'https://googlechromelabs.github.io/chrome-for-testing/latest-versions-per-milestone.json'
)
return response.json()[major_version]['downloads']['chromedriver'][0]['url']
清华大学开源镜像站提供了Chromedriver的同步:
code复制https://mirrors.tuna.tsinghua.edu.cn/chromedriver/
使用镜像源时需注意:
当遇到特定版本缺失时,可以尝试修改URL中的版本号:
code复制原URL:https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/115.0.5790.170/win64/chromedriver-win64.zip
修改为:https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/115.0.5790.171/win64/chromedriver-win64.zip
警告:不要从任何非官方渠道下载exe文件,曾发现过植入恶意代码的案例。
Python开发者可以安装:
bash复制pip install webdriver-manager
示例代码:
python复制from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
原理分析:
在GitHub Actions中配置:
yaml复制jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v4
- run: pip install selenium webdriver-manager
- name: Run tests
run: python your_test_script.py
| 错误代码 | 原因 | 解决方案 |
|---|---|---|
| ERR_CONNECTION_TIMED_OUT | 域名解析失败 | 改用Edge下载源 |
| ERR_NAME_NOT_RESOLVED | DNS污染 | 使用IP直连:172.217.160.110 |
| 403 Forbidden | 权限问题 | 添加自定义User-Agent头 |
bash复制# Windows
del /f /q %HOMEPATH%\\.wdm\\drivers\\chromedriver\\*
# Unix-like
rm -rf ~/.wdm/drivers/chromedriver/
python复制ChromeDriverManager(version="115.0.5790.170").install()
对于需要管理多版本的大型团队,建议:
我在实际企业环境中发现,通过维护一个简单的版本快照服务,可以将团队的环境配置时间减少70%。具体做法是每周一同步最新稳定版到内网服务器,测试团队统一使用该版本进行验证。