From b5146e76daa86f24e050b01927a46efccee2639a Mon Sep 17 00:00:00 2001 From: Gabe <41127686+Zidious@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:27:24 +0100 Subject: [PATCH 1/2] ci: resolve chromedrivers not running in Ubuntu runners >=24.04 --- packages/cli/src/lib/webdriver.ts | 3 +++ packages/webdriverio/test/axe-webdriverio.spec.ts | 7 ++++++- packages/webdriverjs/test/test-utils.ts | 7 ++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/lib/webdriver.ts b/packages/cli/src/lib/webdriver.ts index 051e94e3..29967526 100644 --- a/packages/cli/src/lib/webdriver.ts +++ b/packages/cli/src/lib/webdriver.ts @@ -35,6 +35,9 @@ const startDriver = async ( if (CHROME_TEST_PATH) { options.setChromeBinaryPath(path.resolve(CHROME_TEST_PATH)); + // Required for CI runners using >=Ubuntu 24.04 + // @see https://github.com/SeleniumHQ/selenium/issues/14609 + options.addArguments('no-sandbox'); } if (config.chromePath) { diff --git a/packages/webdriverio/test/axe-webdriverio.spec.ts b/packages/webdriverio/test/axe-webdriverio.spec.ts index eb4bba50..58a5dce5 100644 --- a/packages/webdriverio/test/axe-webdriverio.spec.ts +++ b/packages/webdriverio/test/axe-webdriverio.spec.ts @@ -119,7 +119,12 @@ describe('@axe-core/webdriverio', () => { capabilities: { browserName: 'chrome', 'goog:chromeOptions': { - args: ['--headless'], + args: [ + '--headless', + // Required for CI runners using >=Ubuntu 24.04 + // @see https://github.com/SeleniumHQ/selenium/issues/14609 + '--no-sandbox' + ], binary: process.env.CHROME_TEST_PATH as string } }, diff --git a/packages/webdriverjs/test/test-utils.ts b/packages/webdriverjs/test/test-utils.ts index 710c881a..df3c2625 100644 --- a/packages/webdriverjs/test/test-utils.ts +++ b/packages/webdriverjs/test/test-utils.ts @@ -23,7 +23,12 @@ export const Webdriver = (): WebDriver => { // Weird type change since 4.23.1 release // @see https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/69724 const options = new chrome.Options(); - options.addArguments('headless'); + options + .addArguments('headless') + // Required for CI runners using >=Ubuntu 24.04 + // @see https://github.com/SeleniumHQ/selenium/issues/14609 + .addArguments('no-sandbox'); + options.setBinaryPath(process.env.CHROME_TEST_PATH as string); const builder = new Builder() From 87b77e5632fb84b5c96887401fc9bd74dc8e8ff3 Mon Sep 17 00:00:00 2001 From: Gabe <41127686+Zidious@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:40:29 +0100 Subject: [PATCH 2/2] amend cli webdriver test --- packages/cli/src/lib/webdriver.test.ts | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/packages/cli/src/lib/webdriver.test.ts b/packages/cli/src/lib/webdriver.test.ts index 8b0bee0d..764212a2 100644 --- a/packages/cli/src/lib/webdriver.test.ts +++ b/packages/cli/src/lib/webdriver.test.ts @@ -90,30 +90,17 @@ describe('startDriver', () => { assert.equal(chromedriverPath, config.chromedriverPath); }); - it('passes the --no-sandbox argument to chromeOptions', async () => { - browser = 'chrome-headless'; - config.chromeOptions = ['--no-sandbox']; - driver = await startDriver(config); - - const options = config?.builder?.getChromeOptions(); - assert.isArray(options?.get('goog:chromeOptions').args); - assert.deepEqual(options?.get('goog:chromeOptions').args, [ - 'headless', - '--no-sandbox' - ]); - }); - it('passes multiple arguments argument to chromeOptions', async () => { browser = 'chrome-headless'; - config.chromeOptions = ['no-sandbox', 'disable-dev-shm-usage']; + config.chromeOptions = ['disable-dev-shm-usage']; driver = await startDriver(config); const options = config?.builder?.getChromeOptions(); assert.isArray(options?.get('goog:chromeOptions').args); assert.deepEqual(options?.get('goog:chromeOptions').args, [ 'headless', - 'no-sandbox', - 'disable-dev-shm-usage' + 'disable-dev-shm-usage', + 'no-sandbox' ]); });