我有一个 Selenium 测试套件,我尝试使用 Github Actions 来执行它。我用这些参数初始化 chromedriver:
case "chrome-headless":
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--disable-gpu");
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("start-maximized");
WebDriverManager.chromedriver().setup();
return new ChromeDriver(chromeOptions);
mvn install -DbrowserType=chrome-headless
用于执行测试。它也可以在无头模式下在本地工作,但在工作流执行时会失败。错误信息:
java.awt.HeadlessException:未设置 X11 DISPLAY 变量,但这 程序执行了需要它的操作。
两个附加设置可能会解决您的问题
options.addArguments("--disable-dev-shm-usage");
安装X虚拟框架生成器并设置虚拟显示。这将模拟 GUI 进行测试,即使在无头模式下,仍然需要某种形式的 GUI:
- name: Install Xvfb
run: sudo apt-get install -y xvfb
- name: Run Xvfb
run: Xvfb :99 -ac -screen 0 1920x1080x24 &
- name: Set virtual display
run: echo "DISPLAY=:99" >> $GITHUB_ENV
- name: Run Maven Tests
run: mvn install -DbrowserType=chrome-headless