Skip to main content

Configuration Reference

All DevTools options at a glance, across the three adapters. Shared options have the same names, types and defaults on every adapter; where behaviour or availability differs, it's noted, and adapter-only options are listed separately. The Python adapter takes no options object; see the Python tabs on the Selenium page. For the full explanation of each trace option see the linked section on the Trace Mode page.

Pass options the way each adapter takes them:

  • WebdriverIO — services: [['devtools', { … }]]
  • Selenium — DevTools.configure({ … })
  • Nightwatch — globals: nightwatchDevtools({ … })

Mode & live-mode options​

OptionType / valuesDefaultNotes
mode'live' | 'trace''live''live' opens the DevTools UI dashboard; 'trace' skips it and writes a portable artifact. The two are mutually exclusive.
portnumber3000 (a free port is used if it is taken)Port the DevTools UI / backend binds to. Live mode only.
hostnamestring'localhost'Hostname the server binds to. Live mode only.
screencastScreencastOptions{ enabled: false }Continuous session video (.webm). Live mode only — for trace mode use video. Includes maxBufferFrames (default 2000), the cap on frames held in memory. See Screencast.
devtoolsCapabilitiesCapabilitiesChrome 1600×1200Capabilities used to open the DevTools UI window. WebdriverIO, live mode only.

Trace-mode options​

Only apply when mode: 'trace'.

OptionType / valuesDefaultDetails
traceFormat'zip' | 'ndjson-directory''zip'Single archive vs. an unpacked directory. Output format
traceGranularity'session' | 'spec' | 'test''session'One trace per session / spec file / test. 'test' is required for per-test screenshot/video and inline Allure attach. Trace granularity
tracePolicy'on' | 'retain-on-failure' | 'retain-on-first-failure' | 'on-first-retry' | 'on-all-retries' | 'retain-on-failure-and-retries''on'Which traces to keep. Pairs with traceGranularity: 'test'. Retention
filmstripbooleantrueDense, continuous screencast into the trace for smooth scrubbing; false records one frame per action. Thinned at export to frames at least 100 ms apart, about 600 at most. Dense filmstrip
screenshot'off' | 'on' | 'only-on-failure''off'Per-test screenshot (needs traceGranularity: 'test'). Attached inline to Allure on WebdriverIO and Selenium; produce-only on Nightwatch. Per-test screenshot & video
video'off' | <tracePolicy value>'off'Per-test video slice (needs traceGranularity: 'test'; encoding needs ffmpeg on PATH). Attached inline to Allure on WebdriverIO and Selenium; produce-only on Nightwatch. Per-test screenshot & video
emitArtifactsManifestbooleanfalseWrite devtools-artifacts-<sessionId>.json. Auto-enabled when an Allure reporter is detected (opt-in on Nightwatch). Artifacts manifest
captureAssertionsbooleantrueCapture node:assert (and framework expect matchers where supported) as trace actions. Assertions

Selenium-only (Node.js)​

OptionType / valuesDefaultNotes
openUibooleantrueOpen the dashboard window automatically. Set false for CI.
headlessbooleanfalseRun the test browser headless (--headless=old). The dashboard window is unaffected.
rerunCommandstringautoCommand template for a per-test rerun; {{testName}} is substituted. Derived from the runner's argv when omitted.

Nightwatch-only​

OptionType / valuesDefaultNotes
bidibooleanfalseOpt into WebDriver BiDi capture (console + JS exceptions + network). Requires webSocketUrl: true in capabilities. On WebdriverIO and Selenium, BiDi is auto-attached. See Nightwatch → BiDi capture.

Per-adapter differences​

Some trace capabilities degrade on certain adapters — see the cross-framework support matrix for the full picture. The notable ones:

  • Nightwatch retry-aware retention — only retain-on-failure is reliable; other tracePolicy values degrade to it.
  • Nightwatch BDD describe/it — traceGranularity: 'test' collapses to one session-scoped slice.
  • Nightwatch Allure attach — per-test screenshot/video are produce-only (files + manifest), not attached inline.

Welcome! How can I help?

WebdriverIO AI Copilot