How to run WebdriverIO tests on GitLab CI. Here is the exact snippet you need for WebdriverIO in WebdriverIO, plus how it works, the common mistakes, and related references.

The code

config_file: .gitlab-ci.yml
install_cmd: npm ci
run_cmd: npx wdio run wdio.conf.js

How it works

test stage: script: [npm ci, npx wdio run wdio.conf.js]; artifacts: reports: junit. Use this as part of your automated test flow. Wait for the element or state you are acting on to be ready rather than assuming it, and pair the call with an assertion so a failure is explicit rather than a silent pass. Small, focused snippets like this are easier to debug and reuse than long, tangled test steps.

When to use it

Reach for this when you need WebdriverIO in WebdriverIO. Keep your locators stable and your waits explicit, and confirm the snippet against your installed version — automation APIs shift between major releases, so the exact signature can change over time. When in doubt, check the official documentation for the current form.

Advertisement

Common mistakes

  • Running the step before the page or element is ready
  • Copying a snippet from a different major version of the tool
  • Skipping the assertion, so a failure passes as green
  • Hardcoding brittle locators that break on small UI changes

Run Testcafe On Gitlab Ci · Run Playwright On Gitlab Ci · Run Cypress On Gitlab Ci

Frequently asked questions

How do I handle WebdriverIO in WebdriverIO?

Use the snippet shown above, and wait for the relevant state before acting so the step is reliable.

Why isn't my snippet working?

Most often it is a timing or version issue — make sure the element is ready and that the snippet matches your installed version of WebdriverIO.