Skip to content

Cannot run tests on local machine using @wdio/selenium-standalone-service because of ERR_REQUIRE_ESM #3574

Closed
@esther-86

Description

@esther-86

What are you trying to achieve?

I would like to run tests locally using @wdio/selenium-standalone-service

What do you get instead?

Could not load plugin wdio from module './plugin/wdio':

Provide console output if related. Use --verbose mode for more details.

Could not load plugin wdio from module './plugin/wdio':
Couldn't initialise "@wdio/selenium-standalone-service".
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /Users//Desktop/Repositories/PoCs/codecept_poc/node_modules/@wdio/selenium-standalone-service/build/index.js
require() of ES modules is not supported.
require() of /Users//Desktop/Repositories/PoCs/codecept_poc/node_modules/@wdio/selenium-standalone-service/build/index.js from /Users//Desktop/Repositories/PoCs/codecept_poc/node_modules/codeceptjs/lib/plugin/wdio.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from /Users//Desktop/Repositories/PoCs/codecept_poc/node_modules/@wdio/selenium-standalone-service/package.json.

    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1015:13)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Module.require (internal/modules/cjs/loader.js:887:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at safeRequire (/Users//Desktop/Repositories/PoCs/codecept_poc/node_modules/codeceptjs/lib/plugin/wdio.js:246:12)
    at module.exports (/Users//Desktop/Repositories/PoCs/codecept_poc/node_modules/codeceptjs/lib/plugin/wdio.js:104:21)
    at createPlugins (/Users//Desktop/Repositories/PoCs/codecept_poc/node_modules/codeceptjs/lib/container.js:291:44)
    at Function.create (/Users//Desktop/Repositories/PoCs/codecept_poc/node_modules/codeceptjs/lib/container.js:47:25)
    at Codecept.init (/Users//Desktop/Repositories/PoCs/codecept_poc/node_modules/codeceptjs/lib/codecept.js:56:15)
Error: Couldn't initialise "@wdio/selenium-standalone-service".
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /Users//Desktop/Repositories/PoCs/codecept_poc/node_modules/@wdio/selenium-standalone-service/build/index.js
require() of ES modules is not supported.
require() of /Users//Desktop/Repositories/PoCs/codecept_poc/node_modules/@wdio/selenium-standalone-service/build/index.js from /Users//Desktop/Repositories/PoCs/codecept_poc/node_modules/codeceptjs/lib/plugin/wdio.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from /Users//Desktop/Repositories/PoCs/codecept_poc/node_modules/@wdio/selenium-standalone-service/package.json.

Provide test source code if related

Feature('login');

Scenario('test something', async ({ I }) => {
    await I.amOnPage('/')
});

Details

  • CodeceptJS version: 3.3.7
  • NodeJS Version: Had 12.22.6, then installed and set it to use 18.13.0
  • Operating System: macOS Monterey MacBook Pro (16-inch, 2019)
  • puppeteer || webdriverio || testcafe version (if related): webdriverio
  • Configuration file:
import { setHeadlessWhen, setCommonPlugins } from '@codeceptjs/configure';
// turn on headless mode when running with HEADLESS=true environment variable
// export HEADLESS=true && npx codeceptjs run
setHeadlessWhen(process.env.HEADLESS);

// enable all common plugins https://github.com/codeceptjs/configure#setcommonplugins
setCommonPlugins();

export const config: CodeceptJS.MainConfig = {
  tests: './*_test.ts',
  output: './output',
  helpers: {
    WebDriver: {
      url: 'http://www.google.com',
      browser: 'chrome'
    }
  },
  include: {
    I: './steps_file'
  },
  name: 'codecept-js-huong',
  fullPromiseBased: true,
  plugins: {
        pauseOnFail: {},
        retryFailedStep: {
            enabled: true
        },
        tryTo: {
            enabled: true
        },
        screenshotOnFail: {
            enabled: true
        },
        wdio: {
            enabled: true,
            services: ['selenium-standalone']
        }
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions