CircleCI browser-tools@2.0.0异常:指定装Chrome却尝试装Firefox报错
我正尝试在CircleCI上为Django应用运行Selenium测试,browser-tools已在2025.05.28更新至2.0.0版本,但配置仍无法正常完成。我的config.yml中已经添加了browser-tools/install-chrome步骤,并且手动安装了ChromeDriver 136.0.7103.94,但运行时browser-tools却自动尝试安装Firefox,进而引发报错。
当前配置代码如下:
version: 2.1 orbs: python: circleci/python@3.1.0 slack: circleci/slack@4.10.1 browser-tools: circleci/browser-tools@2.0.0 .... build-and-test: executor: my-executor parallelism: 16 steps: - checkout - browser-tools/install-chrome - run: name: Install ChromeDriver 136.0.7103.94 command: | CHROMEDRIVER_VERSION=136.0.7103.94 wget -q -O /tmp/chromedriver_linux64.zip https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/${CHROMEDRIVER_VERSION}/linux64/chromedriver-linux64.zip unzip -o /tmp/chromedriver_linux64.zip -d /tmp/ sudo mv /tmp/chromedriver-linux64/chromedriver /usr/local/bin/chromedriver sudo chmod +x /usr/local/bin/chromedriver - run: name: Show Chrome and ChromeDriver versions command: | google-chrome --version chromedriver --version
解决方法
1. 排查自定义executor的默认配置
你的my-executor可能继承了带有Firefox安装逻辑的镜像或配置,导致browser-tools触发额外安装流程。检查executor定义,确认是否有自动安装浏览器的默认步骤,也可以直接改用CircleCI官方Python executor搭配browser-tools orb。
2. 显式指定Chrome版本,对齐Driver版本
在install-chrome步骤中明确指定Chrome版本,和你用的ChromeDriver版本保持一致,覆盖orb默认行为:
- browser-tools/install-chrome: chrome-version: 136.0.7103.94
3. 用orb自带命令安装ChromeDriver
不需要手动下载ChromeDriver,browser-tools提供了install-chromedriver步骤,能自动匹配已安装的Chrome版本,避免路径、权限或版本不匹配问题:
- browser-tools/install-chrome: chrome-version: 136.0.7103.94 - browser-tools/install-chromedriver
4. 关闭orb的默认全浏览器安装
部分orb或executor会默认安装所有主流浏览器,可以查看browser-tools orb的配置参数,设置类似install-defaults: false的选项,只安装指定的Chrome。
5. 清理构建缓存
如果之前的缓存残留了旧配置或浏览器文件,可能引发冲突。可以在构建步骤中添加缓存清理命令,或者重新生成executor镜像。
内容的提问来源于stack exchange,提问作者Vasyl Bilych

