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

GitHub Actions执行Java UI测试报错:Chrome无法正常启动

解决GitHub Actions中Selenium Chrome无法启动会话的问题

报错信息

Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome failed to start: exited normally.

问题分析

GitHub Actions的Ubuntu runner是无头环境(无图形界面),默认配置的Chrome无法直接启动;同时可能存在Chrome与ChromeDriver版本不匹配、缺少必要启动参数的问题。

解决方案

1. 调整GitHub Actions配置,确保Chrome环境正常

修改你的main.yaml,添加Chrome安装与版本匹配的步骤:

name: Java CI

on:
  push:
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Set up JDK
        uses: actions/setup-java@v2
        with:
          java-version: '17'
          distribution: 'temurin'

      # 新增:安装指定版本Chrome
      - name: Set up Chrome
        uses: browser-actions/setup-chrome@v1
        with:
          chrome-version: latest

      # 新增:安装与Chrome匹配的ChromeDriver
      - name: Install ChromeDriver
        run: |
          CHROME_VERSION=$(google-chrome --version | grep -oP '\d+\.\d+\.\d+\.\d+')
          wget -N https://chromedriver.storage.googleapis.com/$CHROME_VERSION/chromedriver_linux64.zip
          unzip chromedriver_linux64.zip
          chmod +x chromedriver
          sudo mv chromedriver /usr/local/bin/

      # 新增:验证版本匹配
      - name: Verify Chrome and ChromeDriver versions
        run: |
          google-chrome --version
          chromedriver --version

      - name: Cache the Maven packages to speed up build
        uses: actions/cache@v2
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2

      - name: Build with Maven
        run: mvn -B package --file pom.xml

      - name: Run tests
        run: mvn clean test -Dcucumber.options="--tags @Test"

2. 修改serenity.properties,添加无头启动参数

在配置文件中补充Chrome适配无头环境的启动参数:

serenity.project.name=SELENIUM FRAMEWORK
serenity.test.root=org.example
webdriver.driver=chrome
webdriver.autodownload=true
# 添加无头模式及必要参数
webdriver.chrome.options=--headless=new --no-sandbox --disable-dev-shm-usage --disable-gpu
serenity.browser.maximized=true
serenity.use.unique.browser=false
serenity.restart.browser.each.scenario=true

关键参数说明

  • --headless=new:使用Chrome新版无头模式,兼容性更强
  • --no-sandbox:关闭沙箱模式,规避CI环境下的权限限制
  • --disable-dev-shm-usage:避免共享内存不足导致Chrome崩溃
  • --disable-gpu:禁用GPU加速,无头环境无需该功能

验证要点

运行任务后,查看Verify Chrome and ChromeDriver versions步骤的输出,确保两者主版本号完全一致。若版本不匹配,需手动指定对应版本的Chrome和ChromeDriver。

内容的提问来源于stack exchange,提问作者アレックス

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 03:12:43