GitHub Actions中Selenium启动Chrome报错:DevToolsActivePort文件不存在
解决GitHub Actions中Selenium Chrome启动失败的问题
这个报错是因为GitHub Actions的无头环境下,Chrome默认启动参数不适用,需添加特定配置适配环境。以下是具体修复步骤:
1. 给Chrome添加无头模式及必要启动参数
在你的Selenium代码中,创建ChromeOptions时必须补充以下参数:
from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() # 启用新版无头模式 chrome_options.add_argument("--headless=new") # 禁用沙箱(GitHub Actions环境必需) chrome_options.add_argument("--no-sandbox") # 禁用/dev/shm使用,避免容器环境资源不足 chrome_options.add_argument("--disable-dev-shm-usage") # 指定窗口大小,避免页面布局异常 chrome_options.add_argument("--window-size=1920,1080") driver = webdriver.Chrome(options=chrome_options)
2. 确保GitHub Actions中正确安装Chrome及ChromeDriver
在你的GitHub Actions工作流文件(如.github/workflows/test.yml)中,需明确配置Chrome的安装步骤,推荐使用官方action简化操作:
steps: - name: 拉取代码 uses: actions/checkout@v4 - name: 配置Python环境 uses: actions/setup-python@v5 with: python-version: '3.x' # 替换为你的项目Python版本 - name: 安装依赖 run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: 安装Chrome浏览器 uses: browser-actions/setup-chrome@v1 with: chrome-version: stable - name: 运行测试 run: pytest # 替换为你的测试执行命令
3. 保证ChromeDriver与Chrome版本匹配
如果未使用上述setup-chrome action,需确保ChromeDriver版本和Chrome完全一致。也可以用webdriver-manager自动管理驱动版本:
from selenium import webdriver from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager chrome_options = Options() chrome_options.add_argument("--headless=new") chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-dev-shm-usage") driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options)
以上配置可解决绝大多数GitHub Actions中Chrome启动失败的问题,核心是适配无头环境的启动参数,以及确保浏览器与驱动版本匹配。
内容的提问来源于stack exchange,提问作者sahr jaber
相关产品推荐
相关产品推荐

