Github 操作中的 HeadlessException

问题描述 投票:0回答:1

我有一个 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 变量,但这 程序执行了需要它的操作。

selenium-webdriver selenium-chromedriver github-actions workflow
1个回答
0
投票

两个附加设置可能会解决您的问题

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
© www.soinside.com 2019 - 2024. All rights reserved.