Skip to main content

One framework to test every platform your users are on

Browsers, native and hybrid mobile apps, desktop apps, VS Code extensions and visual regressions, all with one API. Built on web standards, openly governed, and ready for your coding agent.

npm init wdio@latest .
login.e2e.tsnpx wdio runawait $('aria/Log in').click()await expect($('h1')).toHaveText('Hi!')BrowsersChrome · Firefox · Safari · EdgeMobileiOS · Android · FlutterDesktopmacOS · Windows · LinuxVS CodeExtensions & editorsElectronElectron · Tauri · DioxusVisualPixel-perfect diffs
One API

Write it once. Run it on every platform.

The same test runner, selectors, assertions and reporters, whether you are testing a web app, a phone, a desktop app or an editor extension.

End-to-end and component tests in real browsers

  • Chrome, Firefox, Safari and Edge through WebDriver and WebDriver BiDi
  • Component tests for React, Vue, Svelte, Solid, Preact, Lit and Stencil
  • Network mocking, emulation and auto-waiting built in
Read the guide
test/specs/search.e2e.ts
import { browser, $, expect } from '@wdio/globals'

describe('webdriver.io', () => {
it('finds the docs search', async () => {
await browser.url('https://webdriver.io')
await $('.DocSearch-Button').click()
await expect($('.DocSearch-Modal')).toBeDisplayed()
})
})
AI-native

Built for coding agents

Most tests are now written together with an agent. WebdriverIO gives it everything it needs to write, run and fix them on its own.

agent

Write a login test for localhost:3000 and make sure it passes.

webdriverio-docssearch_docs"selectors best practices"

wdio-mcpstart_session{ platform: "browser", browser: "chrome" }

wdio-mcpnavigate"http://localhost:3000/login"

wdio-mcpget_elements{ }

Found the form. Writing test/specs/login.e2e.ts with aria selectors.

terminalnpx wdio runwdio.conf.ts --spec test/specs/login.e2e.ts

1 passing (2.4s)

Live mode

The dashboard that opens while your tests run. Commands, the page, and source update as each step executes.

Live mode

The dashboard that opens while your tests run. Commands, the page, and source update as each step executes.

Live mode
Debugging

See exactly what your test did

WebdriverIO DevTools shows every command, network request, console message and screenshot of a run. Watch tests live and rerun single tests with a click, or record portable traces in CI and replay them later.

Open source

Community driven. Openly governed.

WebdriverIO is not a product of a testing company. It is run by its community under the umbrella of the OpenJS Foundation, so its direction follows the needs of its users.

We’d like to extend our heartfelt thanks to all the contributors who have helped make WebdriverIO the powerful tool it is today. Your dedication and effort are truly appreciated!

Web standards

Real browsers, real devices, real users

WebdriverIO automates through WebDriver and WebDriver BiDi, the W3C standards every browser vendor ships. No patched browser builds and no JavaScript-emulated clicks: your tests interact with your app the way your users do.

Who is using WebdriverIO?

  • Google
  • Netflix
  • Microsoft
  • Mozilla
  • Buoyant
  • SAP
  • Salesforce
  • Hilton
  • Charles Schwab
  • JW Player
  • BBVA
  • GoPro
  • Algolia
  • Financial Times
  • Zendesk
  • 1&1
  • Avira
  • Deloitte
  • Rabobank
  • Bedrock Streaming

Sponsored by companies that care

We are an open source project with a strong commitment to transparency and community governance. We are part of the OpenJS Foundation which is a part of the Linux Foundation. The project is entirely run by volunteers and funded by invested companies that want to see the project succeed. The project team is grateful for the generous sponsorship of these companies.

Premium Sponsors

Gold Sponsors

If you use WebdriverIO within your organization, please consider supporting the project by becoming a sponsor. It will help us to keep the project running and evolving.

Start testing in under a minute

npm init wdio@latest .

Welcome! How can I help?

WebdriverIO AI Copilot