Nightwatch E2E 浏览器不适用于 Github 操作

Nightwatch E2E browsers don't work on Github Actions

我使用 create-nuxt-app 命令开始了一个新项目,并选择了 Nightwatch 作为测试框架。 Chrome 和 Geckodriver (firefox) 在本地都工作正常:Nightwatch 启动并进行 OK 测试。 但是在 Github 上,Chrome 和 Geckodriver 都不起作用。

Chrome 抛出此错误:

Error: An error occurred while retrieving a new session: "unknown error: Chrome failed to start: exited abnormally."

Geckodriver 抛出此错误:

Error: An error occurred while retrieving a new session: "Process unexpectedly closed with status 1"

我尝试过的:

  1. 尝试使用 chrome 或 geckodriver。
  2. chrome 试过“--no-sandbox”,但运气不好。
  3. geckodriver 尝试了“--headless”,但运气不佳。
  4. 尝试了 Chrome 的不同版本,例如 77、87、88。

我已完全按照这些说明进行操作。 https://nightwatchjs.org/gettingstarted/browser-drivers-setup/ 所以我没有忘记为每个设置等设置适当的端口

设置绝对是全新的,没有任何额外的配置。

我使用以下配置让它工作:

test_settings: {
default: {
  disable_error_log: false,
  launch_url: 'https://nightwatchjs.org',

  screenshots: {
    enabled: false,
    path: 'screens',
    on_failure: true
  },

  desiredCapabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: ['--headless', '--no-sandbox']
    }
  },

  webdriver: {
    start_process: true,
    server_path: require('chromedriver').path,
    port: 9515
  }
}, 
.........

密切关注此版块:

desiredCapabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: ['--headless', '--no-sandbox']
    }
  },

我没有同时使用这两个设置,但它最终起作用了:

     args: ['--headless', '--no-sandbox']

主要要求是--headless配合ChromeDriver使用,我之前没做过。