WebdriverIO is an MIT-licensed, TypeScript-written test automation framework for Node.js that drives browsers and mobile applications through WebDriver, WebDriver BiDi, and Appium, aimed at engineering teams that write end-to-end, unit, and component tests in JavaScript or TypeScript.
What it is
WebdriverIO is a next-generation browser and mobile automation test framework for Node.js, listed in this registry under Developer Tools / Frameworks & Platforms. The project is written in TypeScript and released under the MIT licence, with roughly 9,836 stars, 2,684 forks, and 248 open issues at the time of writing. Its repository holds the core packages of the project: webdriver, a Node.js bindings implementation for the W3C WebDriver specification and the Mobile JSONWire Protocol; webdriverio, the framework itself; @wdio/cli, the WebdriverIO testrunner command line interface; @wdio/config, a helper utility that parses and validates WebdriverIO options; and @wdio/logger. Documentation lives at http://webdriver.io, alongside a developer guide and an API reference.
The concrete problem it solves is the glue work that otherwise sits between a raw automation protocol and a real test suite. Rather than scripting the webdriver bindings directly, a team describes tests once and lets the framework handle session setup, option parsing, driver communication over WebDriver, WebDriver BiDi, or Appium, and the handoff to a test runner. It covers e2e testing as well as unit and component testing in the browser, and it supports the BDD/TDD framework the team already uses instead of forcing a replacement. Where a suite needs real devices or browsers, execution can stay local or move to a cloud grid.
Key capabilities
- Runs tests on WebDriver, WebDriver BiDi, and Appium automation technology, covering desktop browsers and mobile apps from one framework.
- Supports e2e as well as unit and component testing in the browser.
- Integrates with BDD/TDD frameworks, with Cucumber, Jasmine, and Mocha named in the project topics.
- Ships
@wdio/cli as the testrunner command line interface, with @wdio/config parsing and validating test options.
- Provides
webdriver bindings for the W3C WebDriver spec and the Mobile JSONWire Protocol.
- Executes tests locally or in the cloud on Sauce Labs, BrowserStack, TestingBot, or TestMu AI (formerly LambdaTest).
- Carries
performance and performance-test topics, and exposes a configuration wizard that accepts community services and reporters; curated additions are tracked in the awesome-webdriverio list.
Who uses it and how
- Web engineering teams running e2e suites locally during development and against a cloud provider's grid in continuous integration, switching execution target without rewriting tests.
- Mobile QA teams using Appium through the same framework and
webdriver bindings that drive their browser tests.
- Teams already committed to Cucumber, Jasmine, or Mocha, who keep their existing BDD/TDD style and add browser or device automation underneath it.
- Enterprise organisations that need commercial support and maintenance for the dependency, available through the Tidelift Subscription.
- Contributors who start from the GitHub Codespaces dev container defined in
.devcontainer/devcontainer.json or from a Gitpod workspace, and who use the good first pick issue label and the project's Matrix channel to find work.
Getting started
Test authors begin from @wdio/cli, the WebdriverIO testrunner command line interface, with @wdio/config validating the generated options and the project's configuration wizard wiring in services and reporters. Contributors instead open a Codespaces dev container or a Gitpod workspace straight from the repository, both preconfigured for the codebase.
How it compares
This registry provides no list of paid products that WebdriverIO replaces, and it names no directly comparable open-source framework in the supplied facts, so on the evidence here the project stands alone in this registry. The commercial names attached to it — Sauce Labs, BrowserStack, TestingBot, and TestMu AI — are cloud execution targets and integrations rather than substitutes. Commercial support for the project itself is offered through the Tidelift Subscription, while the framework remains MIT-licensed and free to use.
When to use it — and when not to
Teams that can operate a Node.js toolchain, browser drivers, and an Appium server for mobile targets get a single framework covering browser and device automation with a free MIT licence and no vendor lock-in on the execution grid. Teams unwilling to maintain that supporting infrastructure, or those working in a non-JavaScript stack, should look elsewhere, since the framework is bound to Node.js. The supplied README excerpt is short and skewed toward contribution instructions rather than end-user setup guidance, so prospective adopters should read the developer guide and API reference on the homepage before committing; the repository was last pushed in September 2026 and carries 248 open issues, so a degree of churn should be expected.
project readme (upstream, from github) — read inline

Next-gen browser and mobile automation test framework for Node.js.
Homepage |
Developer Guide |
API Reference |
Contribute |
Changelog |
Roadmap
WebdriverIO is a test automation framework, for e2e as well as unit and component testing in the browser, that allows you to run tests based on the WebDriver and WebDriver BiDi as well as Appium automation technology. It provides support for your favorite BDD/TDD test framework and will run your tests locally or in the cloud using Sauce Labs, BrowserStack, TestingBot or TestMu AI (Formerly LambdaTest).
:woman_technologist: :man_technologist: Contributing
Do you like WebdriverIO and want to help make it better? Awesome! Have a look into our Contributor Documentation to get started and find out what contributions can be and how to make them.
Getting started with GitHub Codespaces
To get started, create a codespace for this repository by clicking this 👇

A codespace will open in a web-based version of Visual Studio Code. The dev container is fully configured with the software needed for this project.
Note: Dev containers are an open spec that is supported by GitHub Codespaces and other tools.
Getting started with Gitpod
You can also just click on:

to get a ready-to-use development environment for you to start working on this code base.
If you're looking for issues to help out with, check out the issues labeled "good first pick". You can also reach out to our Matrix Channel if you have questions on where to start contributing.
:office: WebdriverIO for Enterprise
Available as part of the Tidelift Subscription.
The maintainers of WebdriverIO and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open-source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. Learn more.
:package: Packages
This repository contains some of the core packages of the WebdriverIO project. There are many wonderful curated resources the WebdriverIO community has put together.
Did you build a WebdriverIO service or reporter? That's awesome! Please add it to our configuration wizard and docs (e.g. like in this example commit) as well as to our awesome-webdriverio list. Thank you! 🙏 ❤️
Core
- webdriver - A Node.js bindings implementation for the W3C WebDriver and Mobile JSONWire Protocol
- webdriverio - Next-gen browser and mobile automation test framework for Node.js
- @wdio/cli - A WebdriverIO testrunner command line interface
Helper
- @wdio/config - A helper utility to parse and validate WebdriverIO options
- @wdio/logger - A helper utility for logging WebdriverIO packages
- @wdio/protocols - Utility package providing information about automation protocols
- @wdio/repl - A WDIO helper utility to provide a repl interface for WebdriverIO
- @wdio/reporter - A WebdriverIO utility to help report all events
- @wdio/runner - A WebdriverIO service that runs tests in arbitrary environments
- @wdio/utils - A WDIO helper utility to provide several utility functions used across the project
- @wdio/globals - A WDIO helper utility for importing global variables directly
Reporter
Services