Bitbucket Pipeline集成Selenium Python测试遇127错误求助
解决Bitbucket Pipeline中Selenium ChromeDriver退出错误(状态码127)
错误原因
状态码127的核心问题:
- 你使用的
python:3.7镜像仅包含Python环境,未安装Chrome浏览器,ChromeDriver必须与对应版本的Chrome客户端配合运行 - 缺少ChromeDriver依赖的系统底层库
- 无界面的Pipeline环境中,未配置Chrome无头运行模式
解决方案
1. 修改Bitbucket Pipeline配置,安装Chrome及依赖
更新bitbucket-pipelines.yml,在安装Python依赖前先部署系统级Chrome和必要组件:
image: python:3.7 pipelines: default: - step: script: - python --version # 安装系统依赖、Chrome浏览器及匹配驱动 - apt-get update && apt-get install -y --no-install-recommends chromium chromium-driver # 批量安装Python依赖 - pip3 install selenium webdriver-manager - python3.7 Tests/Test1.py
2. 调整测试代码,配置Chrome无头运行参数
Pipeline是无界面环境,必须启用Chrome无头模式,并添加容器环境专属参数:
from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.options import Options # 配置Chrome容器运行参数 chrome_options = Options() # Selenium 4.10+推荐的新无头模式,兼容性更好 chrome_options.add_argument("--headless=new") # 禁用沙箱,规避容器权限限制 chrome_options.add_argument("--no-sandbox") # 解决容器内共享内存不足问题 chrome_options.add_argument("--disable-dev-shm-usage") # 禁用GPU加速(无界面环境无需启用) chrome_options.add_argument("--disable-gpu") # 初始化WebDriver driver = webdriver.Chrome( service=ChromeService(ChromeDriverManager().install()), options=chrome_options ) try: driver.get("https://www.google.com/") # 打印页面标题验证执行结果 print(f"页面标题: {driver.title}") finally: # 确保无论测试结果如何,driver都能正常退出 driver.quit()
关键说明
- 通过
apt-get安装的chromium和chromium-driver版本自动匹配,彻底避免版本不兼容问题 --no-sandbox和--disable-dev-shm-usage是容器环境运行Chrome的必需参数,否则会触发权限或资源不足错误- 用
try-finally包裹业务代码,确保WebDriver资源正常释放,避免Pipeline进程泄漏
内容的提问来源于stack exchange,提问作者nstack
相关产品推荐
相关产品推荐

