MCPcopy Index your code
hub / github.com/webdriverio/webdriverio

github.com/webdriverio/webdriverio @v9.29.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v9.29.1 ↗ · + Follow
4,799 symbols 14,478 edges 1,440 files 658 documented · 14% 15 cross-repo links updated 4d agov8.48.3 · 2026-07-01★ 9,800239 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Stand With Ukraine

<a href="https://webdriver.io/">
    <img alt="WebdriverIO" src="https://webdriver.io/assets/images/robot-3677788dd63849c56aa5cb3f332b12d5.svg" width="146">
</a>







Next-gen browser and mobile automation test framework for Node.js.







<a href="https://github.com/webdriverio/webdriverio/actions/workflows/test.yml">
    <img alt="Build Status" src="https://github.com/webdriverio/webdriverio/actions/workflows/test.yml/badge.svg">
</a>
<a href="https://snyk.io/advisor/npm-package/webdriverio">
    <img alt="Package Health" src="https://snyk.io/advisor/npm-package/webdriverio/badge.svg">
</a>
<a href="https://bestpractices.coreinfrastructure.org/en/projects/5589">
    <img alt="OpenSSF Best Practices" src="https://bestpractices.coreinfrastructure.org/projects/5589/badge">
</a>



<a href="https://discord.webdriver.io">
    <img alt="Support Channel" src="https://img.shields.io/discord/1097401827202445382?color=%234FB898&label=Join%20us%20on%20Discord">
</a>
<a href="https://github.com/webdriverio/webdriverio/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc">
    <img alt="Issue Resolution time" src="https://isitmaintained.com/badge/resolution/webdriverio/webdriverio.svg">
</a>
<a href="https://github.com/webdriverio/webdriverio/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc">
    <img alt="Open issues" src="https://isitmaintained.com/badge/open/webdriverio/webdriverio.svg">
</a>

<a href="https://webdriver.io">Homepage</a> |
<a href="https://webdriver.io/docs/gettingstarted.html">Developer Guide</a> |
<a href="https://webdriver.io/docs/api.html">API Reference</a> |
<a href="https://github.com/webdriverio/webdriverio/blob/main/CONTRIBUTING.md">Contribute</a> |
<a href="https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md">Changelog</a> |
<a href="https://github.com/webdriverio/webdriverio/blob/main/ROADMAP.md">Roadmap</a>

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 👇

Open in GitHub Codespaces

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:

Open in Gitpod

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

  • @wdio/appium-service - A WebdriverIO service to start & stop Appium Server
  • @wdio/browserstack-service - A WebdriverIO service that can be used to use BrowserStack Test Observability which is a reporting, debugging, and test suite quality tracking tool for any test running anywhere. The service also helps for a better integration with the BrowserStack grid if you're running tests on the grid.
  • @wdio/lighthouse-service - A WebdriverIO service that integrates Google Lighthouse commands to use it for automate tests
  • @wdio/firefox-profile-service - A WebdriverIO service that lets you define your Firefox profile in your wdio.conf.js
  • @wdio/sauce-service - A WebdriverIO service that provides a better integration into Sauce Labs
  • @wdio/shared-store-service - A WebdriverIO service to exchange data across processes
  • @wdio/testingbot-service - A WebdriverIO service that provides a better integration into TestingBot
  • @wdio/devtools-service - A WebdriverIO service that provides browser devtools for debugging, visualizing, and controlling test executions in real-time with live browser preview, test rerun capabilities, and comprehensive execution insights

DevTools Adapters

Adapters that bring the WebdriverIO DevTools UI to test suites running outside WebdriverIO. These are not WDIO services — they integrate directly with their host runner.

  • @wdio/nightwatch-devtools - Nightwatch.js adapter for WebdriverIO DevTools — same visual debugging UI with zero test code changes
  • @wdio/selenium-devtools - Selenium WebDriver adapter for WebdriverIO DevTools — runner-agnostic (Mocha, Jest, Cucumber, or plain Node scripts)

Runner

Framework Adapters

Others

Infrastructure Packages

These packages are not released to NPM and used to work on this codebase.

  • @wdio/compiler - Esbuild script to compile the source code all of all packages
  • @wdio/lerna-patch - This sub-package is being used to patch Lerna to not run pnpm install after it prepared all packages for release

:handshake: Project Governance

This project is maintained by awesome people following a common set of rules and treating each other with respect and appreciation.

:man_cook: :woman_cook: Backers

Become a backer and show your support for our open-source project.

:money_with_wings: Sponsors

Does your company use WebdriverIO? Ask your manager or marketing team if your company would be interested in supporting our project. Support will allow the maintainers to dedicate more time to maintenance and new features for everyone. Also, your company's logo will show on GitHub - who doesn't want a little extra exposure? Here's the info.

<a href="https://openc

Extension points exported contracts — how you extend this code

PathService (Interface)
(no doc) [4 implementers]
packages/wdio-config/src/types.ts
TestFramework (Interface)
(no doc) [4 implementers]
packages/wdio-runner/src/types.ts
WebdriverIOInstance (Interface)
* we have to mock the WebdriverIO.Browser and WebdriverIO.MultiRemoteBrowser type * here as this package can't access i
packages/wdio-utils/src/shim.ts
ServiceOption (Interface)
* Service option to be extended by ecosystem services
packages/wdio-types/src/index.ts
RunnerInterface (Interface)
* ToDo(Christian): remove when @wdio/runner got typed
packages/wdio-local-runner/src/run.ts
JunitReporterAdditionalInformation (Interface)
Interface to store additional information for a given testcase
packages/wdio-junit-reporter/src/index.ts
ElementArray (Interface)
* WebdriverIO element array * When fetching elements via `$$`, `custom$$` or `shadow$$` commands an array of el
packages/webdriverio/src/types.ts
BrowserExtension (Interface)
* ToDo(Christian): use key remapping with TS 4.1 * https://www.typescriptlang.org/docs/handbook/release-notes/typescrip
packages/wdio-lighthouse-service/src/index.ts

Core symbols most depended-on inside this repo

beforeEach
called by 493
packages/wdio-mocha-framework/tests/__fixtures__/mochaHooks.js
remote
called by 489
packages/webdriverio/src/index.ts
info
called by 245
packages/wdio-browserstack-service/src/bstackLogger.ts
log
called by 232
packages/wdio-cli/src/interface.ts
$
called by 219
packages/wdio-globals/src/index.ts
find
called by 194
packages/webdriverio/src/session/shadowRoot.ts
debug
called by 192
packages/wdio-browserstack-service/src/bstackLogger.ts
on
called by 190
packages/webdriver/src/types.ts

Shape

Method 1,756
Function 1,546
Interface 880
Class 591
Enum 26

Languages

TypeScript100%

Modules by API surface

packages/webdriver/src/bidi/remoteTypes.ts219 symbols
packages/webdriver/src/bidi/localTypes.ts118 symbols
packages/wdio-browserstack-service/src/util.ts91 symbols
packages/wdio-allure-reporter/src/reporter.ts88 symbols
packages/webdriver/src/bidi/handler.ts67 symbols
packages/wdio-browserstack-service/src/cucumber-types.ts59 symbols
tests/smoke.runner.js55 symbols
packages/webdriverio/src/types.ts49 symbols
packages/wdio-browserstack-service/src/insights-handler.ts43 symbols
packages/webdriverio/third_party/fake-timers.js40 symbols
packages/webdriverio/src/utils/interception/index.ts40 symbols
packages/wdio-types/src/Services.ts33 symbols

Dependencies from manifests, versioned

@aws-sdk/client-cloudfront3.840.0 · 1×
@aws-sdk/client-device-farm3.840.0 · 1×
@aws-sdk/client-s33.840.0 · 1×
@aws-sdk/lib-storage3.840.0 · 1×
@babel/core7.18.0 · 1×
@babel/plugin-transform-react-jsx-development7.22.5 · 1×
@browserstack/ai-sdk-node1.5.17 · 1×
@browserstack/wdio-browserstack-service2.0.2 · 1×
@cucumber/cucumber10.3.1 · 1×
@cucumber/gherkin29.0.0 · 1×
@cucumber/messages26.0.1 · 1×
@docusaurus/core3.9.2 · 1×

For agents

$ claude mcp add webdriverio \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact