Skip to main content

wdio-pw-driver

WebdriverIO meets Playwright internals — same WDIO API, no chromedriver, no HTTP.

No chromedriver

Your tests talk to the browser in-process via Playwright. No driver subprocess to spawn, no HTTP roundtrip per command.

Same WDIO API

Drop-in replacement for the standard `webdriver` package. Existing test code, hooks, and reporters work unchanged.

Built-in trace + video

Capability-driven auto-trace, per-test trace zips, video recording, embedded `<video controls>` in the report. No extra plugins.

Cross-browser

Chromium, Firefox, WebKit — all three engines via Playwright. One config per browser, no separate driver downloads.

CI sharding

wdioPW shard splits your spec list deterministically across N CI machines. No external glob expansion needed.

Lightweight reports

wdio-mochawesome-reporter v8 ships an inline HTML renderer (~25 KB self-contained) — no React bundle, no marge.

30-second setup

wdio.conf.ts
// wdio.conf.ts
import PWService from 'wdio-pw-driver'

export const config = {
runner: 'local',
automationProtocol: 'wdio-pw-driver',
services: [[PWService, {}]],

capabilities: [{
browserName: 'chromium',
'wdio:pwOptions': { headless: true },
}],

framework: 'mocha',
specs: ['./specs/**/*.spec.ts'],
}

See Configuration for every option, or Commands for the full pw* surface.