You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单个独立Docker容器中运行Selenium测试(无需docker-compose)

单个Docker容器运行Selenium Chrome测试(无Selenium Server)

问题原因

状态码127错误是因为容器内缺少Chrome运行所需的系统依赖,或是Chrome与chromedriver版本不匹配。以下是无需docker-compose的单容器最简实现:


1. 测试脚本 test.py

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def run_test():
    # 配置Chrome无头模式及容器运行必需参数
    chrome_options = Options()
    chrome_options.add_argument("--headless=new")
    chrome_options.add_argument("--no-sandbox")
    chrome_options.add_argument("--disable-dev-shm-usage")
    chrome_options.add_argument("--disable-gpu")
    chrome_options.add_argument("--window-size=1920,1080")

    # 初始化ChromeDriver(自动匹配容器内安装的Chrome版本)
    driver = webdriver.Chrome(options=chrome_options)
    
    try:
        # 替换为你的公司门户地址
        driver.get("https://your-company-portal.com")
        # 验证页面标题(替换为预期标题)
        assert "公司门户" in driver.title, f"页面标题不符:{driver.title}"
        print("测试通过:成功访问公司门户")
    finally:
        driver.quit()

if __name__ == "__main__":
    run_test()

2. Dockerfile

# 使用轻量Python基础镜像
FROM python:3.10-slim

# 设置环境变量避免交互提示
ENV DEBIAN_FRONTEND=noninteractive

# 安装系统依赖、Chrome浏览器及chromedriver
RUN apt-get update && apt-get install -y --no-install-recommends \
    wget \
    unzip \
    chromium \
    chromium-driver \
    libnss3 \
    libgconf-2-4 \
    libxss1 \
    libasound2 \
    && rm -rf /var/lib/apt/lists/*

# 安装兼容版本的Selenium
RUN pip install selenium==4.10.0

# 复制测试脚本到容器
COPY test.py /app/test.py

# 设置工作目录
WORKDIR /app

# 运行测试
CMD ["python", "test.py"]

构建与运行

  1. 构建镜像:
docker build -t company-portal-test .
  1. 运行测试容器:
docker run --rm company-portal-test

关键说明

  • 使用chromium和chromium-driver而非官方Chrome,Debian镜像自带的包更适配容器环境
  • --no-sandbox和--disable-dev-shm-usage是容器内运行Chrome的必需参数,避免权限和内存限制问题
  • Selenium版本需与Chrome版本兼容(示例中4.10.0适配Chrome 114+)

内容的提问来源于stack exchange,提问作者m0ss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 18:53:15