如何始终下载最新版本chromedriver和geckodriver用于CI自动化测试?
最新版本webdriver自动获取实现方案
geckodriver 自动获取方法
geckodriver的发版信息都存在GitHub Releases中,你可以先通过接口拉取最新的版本号,再代入下载链接即可无需硬编码版本:
- 拉取最新版本号:
GECKO_VERSION=$(curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest | grep -Po '"tag_name": "\K.*?(?=")')
- 下载对应版本的安装包:
wget -nv -O ~/geckodriver.tar.gz "https://github.com/mozilla/geckodriver/releases/download/${GECKO_VERSION}/geckodriver-${GECKO_VERSION}-linux64.tar.gz"
chromedriver 自动获取方法
chromedriver需要和本地安装的Chrome浏览器主版本严格匹配,否则会出现兼容问题,因此建议先获取已安装的Chrome版本,再拉取对应版本的最新driver:
- 读取本地Chrome的版本前缀:
CHROME_VERSION=$(google-chrome --version | grep -Po '[0-9]+\.[0-9]+\.[0-9]+')
- 获取对应主版本的最新chromedriver版本号:
CHROMEDRIVER_VERSION=$(curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_VERSION%.*}")
- 下载对应版本的安装包:
wget -nv -O ~/chromedriver.zip "https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip"
注意事项
- 如果你的CI环境没有特殊代理配置,调用GitHub接口时可能触发限流,可以新增逻辑:如果接口请求失败,就 fallback 到最近一次可用的硬编码版本,避免CI流程直接失败。
- 下载完成后记得执行解压、加执行权限、移动到PATH路径下的常规操作,保证测试脚本可以正常调用到对应driver。
内容的提问来源于stack exchange,提问作者qathulu
相关产品推荐
相关产品推荐

