Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@wdio/reporter

webdriverio4.6mMIT9.23.2TypeScript support: included

A WebdriverIO utility to help reporting all events

webdriver, wdio, wdio-reporter

readme

WebdriverIO Reporter

A WebdriverIO utility to help reporting all events

The @wdio/reporter package can be used to create own custom reporter and publish them to NPM. They have to follow a specific convention as described below in order to work properly. First you need to add @wdio/reporter as dependency of your custom reporter:

npm install @wdio/reporter

or

yarn add @wdio/reporter

Then you need to extend your reporter with the main @wdio/reporter class:

import Reporter from '@wdio/reporter'

export default MyCustomReporter extends Reporter {
    constructor () {
        super()
        // your custom logic if necessary
        // ...
    }

    onRunnerStart () {
        // ...
    }

    onSuiteStart (suite) {
        // ...
    }

    // ...
}

The Reporter parent class calls your event functions if provided when an event was triggered and provides information on that event in a consistent format. You can always register your own listener to receive the raw data that was provided by the framework, e.g. instead of using the onSuiteStart method you can do:

this.on('suite:start', (raw) => {
    // ...
})

in your constructor function.

Configuration

User can pass in custom configurations for each reporter. Per default WebdriverIO populates the outputDir and logLevel option to the reporter, they can get overwritten too. For example, if the user has provided the following reporter options:

// wdio.conf.js
exports.config = {
    // ...
    reporters: ['dot', ['my-reporter', {
        outputDir: '/some/path',
        foo: 'bar'
    }]]
    // ...
}

your options in your reporter class are as follows:

export default class MyReporter extends Reporter {
    constructor () {
        super()
        console.log(this.options)
        /**
         * outputs:
         * {
         *   outputDir: '/some/path',
         *   logLevel: 'trace',
         *   foo: 'bar'
         * }
         */
    }
}

You can access all options via this.options. You can push logs to stdout or a log file depending of whether the stdout option is true or false. Please use the internal method write that is provided by the Reporter parent class in order to push out logs, e.g.

class MyReporter extends Reporter {
    constructor (options) {
        /**
         * make dot reporter to write to output stream by default
         */
        options = Object.assign(options, { stdout: true })
        super(options)
    }

    // ...
    onTestPass (test) {
        this.write(`test "${test.title}" passed`)
    }
    // ...
}

This will result the following output:

"MyReporter" Reporter:
test "some test" passed
test "some other test" passed

"spec" Reporter:
...

If stdout is set to false WebdriverIO will automatically write to a filestream at a location where other logs are stored as well.

Synchronization

If your reporter needs to do some async computation after the test (e.g. upload logs to a server) you can overwrite the isSynchronised getter method to manage this. By default this property always returns true as most of the reporters don't require to do any async work. However in case you need to handle this overwrite the getter method with an custom implementation (e.g. wdio-sumologic-reporter).

class MyReporter extends Reporter {
    constructor (options) {
        // ...
    }

    get isSynchronised (test) {
        return this.unsyncedMessages.length === 0
    }

    // ...
}

The wdio testrunner will wait to kill the runner process until every reporter has the isSynchronised property set to true.

Events

During a test run in WebdriverIO several events are thrown and can be captured by your event functions. The following events are propagated:

Test Events

These events are containing data about the test regardless of the framework it is running in.

onSuiteStart
SuiteStats {
  type: 'suite',
  start: '2018-02-09T13:30:40.177Z',
  duration: 0,
  uid: 'root suite2',
  cid: '0-0',
  title: 'root suite',
  fullTitle: 'root suite',
  tests: [],
  hooks: [],
  suites: [] } }
onSuiteEnd
SuiteStats {
  type: 'suite',
  start: '2018-02-09T13:30:40.177Z',
  duration: 1432,
  uid: 'root suite2',
  cid: '0-0',
  title: 'root suite',
  fullTitle: 'root suite',
  tests: [ [TestStats] ],
  hooks: [ [HookStats], [HookStats] ],
  suites: [ [Object] ],
  end: '2018-02-09T13:30:41.609Z' } }
onSuiteRetry

(Cucumber only)

SuiteStats {
  start: 2024-11-13T06:33:21.499Z,
  end: undefined,
  type: 'scenario',
  uid: '0',
  cid: '0-0',
  file: '/Users/christian.bromann/Sites/WebdriverIO/projects/webdriverio/examples/wdio/cucumber/features/my-feature.feature',
  title: 'Get size of an element',
  fullTitle: 'my-feature.feature:1:1: Get size of an element',
  tags: [],
  tests: [],
  hooks: [],
  suites: [],
  parent: 'my-feature.feature:1:1',
  retries: 1,
  hooksAndTests: [],
  description: '',
  rule: undefined
}
onHookStart
HookStats {
  type: 'hook',
  start: '2018-02-09T13:30:40.181Z',
  duration: 0,
  uid: '"before each" hook4',
  cid: '0-0',
  title: '"before each" hook',
  parent: 'root suite',
onHookEnd
HookStats {
  type: 'hook',
  start: '2018-02-09T13:30:40.181Z',
  duration: 1,
  uid: '"before each" hook4',
  cid: '0-0',
  title: '"before each" hook',
  parent: 'root suite',
  end: '2018-02-09T13:30:40.182Z' } }
onTestStart
TestStats {
  type: 'test',
  start: '2018-02-09T13:30:40.180Z',
  duration: 0,
  uid: 'passing test3',
  cid: '0-0',
  title: 'passing test',
  fullTitle: 'passing test',
  retries: 0,
  state: 'pending' } }

Cucumber tests come with an additional argument property containing data tables if used in feature files, e.g.:

TestStats {
  type: 'test',
  start: '2019-07-08T08:44:56.666Z',
  duration: 0,
  uid: 'I add the following grocieries16',
  cid: '0-0',
  title: 'I add the following grocieries',
  output: [],
  argument: [{
    rows: [{
      cells: ['Item', 'Amount'],
      locations: [{
        line: 17,
        column: 11
      }, {
        line: 17,
        column: 24
      }]
    }, {
      cells: ['Milk', '2'],
      locations: [{
        line: 18,
        column: 11
      }, {
        line: 18,
        column: 24
      }]
    }, {
      cells: ['Butter', '1'],
      locations: [{
        line: 19,
        column: 11
      }, {
        line: 19,
        column: 24
      }]
    }, {
        cells: ['Noodles', '1'],
      locations: [{
        line: 20,
        column: 11
      }, {
        line: 20,
        column: 24
      }]
    }, {
      cells: ['Schocolate', '3'],
      locations: [{
        line: 21,
        column: 11
      }, {
        line: 21,
        column: 24
      }]
    }]
  }],
  state: 'pending'
}
onTestSkip
TestStats {
  type: 'test',
  start: '2018-02-09T14:01:04.573Z',
  duration: 0,
  uid: 'skipped test6',
  cid: '0-0',
  title: 'skipped test',
  fullTitle: 'skipped test',
  retries: 0,
  state: 'skipped' }
onTestPass
TestStats {
  type: 'test',
  start: '2018-02-09T14:11:28.075Z',
  duration: 1503,
  uid: 'passing test3',
  cid: '0-0',
  title: 'passing test',
  fullTitle: 'passing test',
  retries: 0,
  state: 'passed',
  end: '2018-02-09T14:11:29.578Z' } }
onTestRetry
TestStats {
  type: 'test',
  start: 2020-09-23T07:54:34.601Z,
  _duration: 2495,
  uid: 'test-00-0',
  cid: '0-0',
  title: 'test fails and retries',
  fullTitle: 'test fails and retries',
  retries: 0,
  state: 'failed',
  end: 2020-09-23T07:54:37.096Z,
  error:
      { message: 'some error',
        stack: `Error: some error\n    at Context.it (/path/to/project/test/b.js:17:19)\n
  at /path/to/project/packages/wdio-sync/src/index.js:490:28\n    at Promise (<anonymous>)\
n    at F (/path/to/project/node_modules/core-js/library/modules/_export.js:35:28)\n    at
Context.executeSync (/path/to/project/packages/wdio-sync/src/index.js:488:12)\n    at /path/to/project/packages/wdio-sync/src/index.js:623:33`,
        type: 'Error' } } }
onTestFail
TestStats {
     type: 'test',
     start: '2018-02-09T14:11:29.581Z',
     duration: 21,
     uid: 'failing test8',
     cid: '0-0',
     title: 'failing test',
     fullTitle: 'failing test',
     retries: 0,
     state: 'failed',
     end: '2018-02-09T14:11:29.602Z',
     error:
      { message: 'some error',
        stack: `Error: some error\n    at Context.it (/path/to/project/test/b.js:17:19)\n
  at /path/to/project/packages/wdio-sync/src/index.js:490:28\n    at Promise (<anonymous>)\
n    at F (/path/to/project/node_modules/core-js/library/modules/_export.js:35:28)\n    at
Context.executeSync (/path/to/project/packages/wdio-sync/src/index.js:488:12)\n    at /path/to/project/packages/wdio-sync/src/index.js:623:33`,
        type: 'Error' } } }
onTestEnd
TestStats {
  type: 'test',
  start: '2018-02-09T14:11:28.075Z',
  duration: 1503,
  uid: 'passing test3',
  cid: '0-0',
  title: 'passing test',
  fullTitle: 'passing test',
  retries: 0,
  state: 'passed',
  end: '2018-02-09T14:11:29.578Z' } }

Runner Events

These events contain information on the test runner.

onRunnerStart
RunnerStats {
  type: 'runner',
  start: '2018-02-09T14:30:19.871Z',
  duration: 0,
  cid: '0-0',
  capabilities:
   { acceptInsecureCerts: false,
     browserName: 'firefox',
     browserVersion: '59.0',
     'moz:accessibilityChecks': false,
     'moz:headless': false,
     'moz:processID': 92113,
     'moz:profile': '/var/folders/ns/8mj2mh0x27b_gsdddy1knnsm0000gn/T/rust_mozprofile.jlpfs632Becb',
     'moz:webdriverClick': true,
     pageLoadStrategy: 'normal',
     platformName: 'darwin',
     platformVersion: '17.3.0',
     rotatable: false,
     timeouts: { implicit: 0, pageLoad: 300000, script: 30000 } },
  sanitizedCapabilities: 'firefox.59_0.darwin',
  config: [Object],
  specs: [ '/path/to/project/test/my.test.js' ] },
  retry: 0
onRunnerEnd
RunnerStats {
  type: 'runner',
  start: '2018-02-09T14:30:19.871Z',
  duration: 1546,
  uid: undefined,
  cid: '0-0',
  capabilities: [Object],
  sanitizedCapabilities: 'firefox.59_0.darwin',
  config: [Object],
  specs: [ '/path/to/project/test/my.test.js' ],
  failures: 1,
  retries: 1,
  end: '2018-02-09T14:30:21.417Z' } }

Client Events

Client events are triggered when certain interactions with the automation driver are happening.

onBeforeCommand
{ method: 'GET',
  endpoint: '/session/:sessionId/element',
  body: { using: 'css selector', value: 'img' }
  cid: '0-0',
  sessionId: '4d1707ae-820f-1645-8485-5a820b2a40da',
  capabilities: [Object] }
onAfterCommand
{ method: 'GET',
  endpoint: '/session/:sessionId/element/fbf57b79-6521-7d49-b3b7-df91cf2c347a/rect',
  body: {},
  result: { value: { x: 75, y: 11, width: 160, height: 160 } },
  cid: '0-0',
  sessionId: '4d1707ae-820f-1645-8485-5a820b2a40da',
  capabilities: [Object] }

changelog

Changelog

Tags:

  • :boom: [Breaking Change]
  • :eyeglasses: [Spec Compliancy]
  • :rocket: [New Feature]
  • :bug: [Bug Fix]
  • :memo: [Documentation]
  • :house: [Internal]
  • :nail_care: [Polish]

Note: Gaps between patch versions are faulty, broken or test releases.

See CHANGELOG - v4.

See CHANGELOG - v5.

See CHANGELOG - v6

See CHANGELOG - v7

See CHANGELOG - v8


v9.23.1 (2026-01-18)

:eyeglasses: Spec Compliancy

  • wdio-protocols

:rocket: New Feature

  • wdio-config

:bug: Bug Fix

  • wdio-browser-runner
    • #15010 fix(wdio-browser-runner): prioritize @tailwindcss/postcss for Tailwin… (@mccmrunal)
  • wdio-cli
    • #15012 fix(wdio-cli): ensure dynamic specs added in onPrepare are correctly … (@mccmrunal)
  • wdio-allure-reporter, wdio-jasmine-framework
    • #15013 fix(jasmine,allure): preserve nested describe structure (#13953) (@mccmrunal)
  • webdriver
    • #14951 fix(webdriver): normalize overlapping W3C capabilities (webdriverio#14946) (@mccmrunal)
  • wdio-utils
  • wdio-local-runner
    • #14997 fix(local-runner): force kill stuck workers after shutdown timeout (@mccmrunal)
    • #14971 fix(wdio-local-runner): use gracefulExit to avoid synchronous termina… (@mccmrunal)
  • wdio-jasmine-framework, wdio-sauce-service
    • #15001 fix(jasmine-framework): move @types/jasmine to dependencies (@mccmrunal)
  • webdriverio
  • wdio-cli, wdio-local-runner, wdio-runner, wdio-types
    • #14859 fix: Allow specFileRetries to be overriden in the beforeSession hook (@bgrozev)
  • wdio-cli, webdriverio
  • wdio-appium-service
  • wdio-junit-reporter
    • #14965 fix(junit-reporter): do not report skipped test when no tests are exe… (@mccmrunal)
  • wdio-shared-store-service
    • #14966 fix(shared-store): use 127.0.0.1 instead of localhost (#14761) (@mccmrunal)
  • wdio-mocha-framework
    • #14982 fix(mocha): don't report this.skip() in hooks as failure (#14649) (@mccmrunal)
  • wdio-browserstack-service
    • #14985 Prevent undefined binds when chaining element command overwrites (@anish353)

:memo: Documentation

Committers: 9

v9.23.0 (2026-01-03)

:rocket: New Feature

  • eslint-plugin-wdio, wdio-browserstack-service, wdio-globals, wdio-runner, webdriverio
    • #14975 fix: Rename multiremotebrowser to multiRemoteBrowser to follow camelCasing Rules (@dprevost-LMI)

:bug: Bug Fix

  • wdio-jasmine-framework
    • #14976 fix(wdio-jasmine-framework): restore hook data for Jasmine 5.10+ (@mccmrunal)
  • wdio-utils
    • #14977 fix(wdio-utils): rethrow pending/skip errors for Jasmine (#14688) (@mccmrunal)
  • webdriverio
    • #14979 fix(webdriverio): respect element index in waitForExist (#14418) (@mccmrunal)
    • #14957 fix(webdriverio): handle 'no such alert' error when dialog closes (@mccmrunal)

:nail_care: Polish

:memo: Documentation

:house: Internal

Committers: 5

v9.22.0 (2025-12-24)

:rocket: New Feature

:bug: Bug Fix

  • wdio-utils
    • #14918 fix(wdio-utils): propagate framework timeouts to shim to avoid premat… (@mccmrunal)
    • #14896 fix: add unique user-data-dir for Chrome workers on Windows (#14729) (@mccmrunal)
  • webdriverio
    • #14901 fix(attach): flatten options to top-level for waitFor commands (#14715) (@mccmrunal)
    • #14909 fix: use type-specific action IDs to comply with W3C WebDriver spec (… (@mccmrunal)
    • #14910 Fix isElementDisplayed and isElementClickable on Perfecto Mobile Devices (@nheiser)
    • #14933 fix: handle multiple webviews with same package when first is empty (… (@mccmrunal)
    • #14937 Fix/ getCSSProperty implicit wait on stale element (@ivanovicu)
    • #14944 fix(webdriverio): fix wildcard support in browser.mock (@mccmrunal)
  • wdio-allure-reporter
    • #14907 fix(@wdio/allure-reporter): include cid in historyId for multi-capabi… (@mccmrunal)
  • wdio-cli
    • #14904 fixes double config file loading issue and tsx file timing load issue (@mccmrunal)
    • #14917 fix(cli): correct isParallelMultiremote check for empty capabilities (@mccmrunal)
  • wdio-browserstack-service
  • wdio-appium-service

:nail_care: Polish

:memo: Documentation

:house: Internal

Committers: 9

v9.21.0 (2025-11-29)

:rocket: New Feature

  • wdio-browserstack-service

:bug: Bug Fix

  • wdio-cucumber-framework
  • webdriverio
    • #14793 fix(webdriverio): get absolute paths using native path.resolve (@macarie)
    • #14886 fix: detect stale elements in BiDi mode for getCSSProperty (#14885) (@mccmrunal)
    • #14832 fix(webdriverio): fix getHTML return-type (@gavvvr)
    • #14817 fix(webdriverio): Fix request mock with hostname only not working (@Dziurdzikowski)
    • #14836 fix: update waitForExist function to maintain elementIds for shadow e… (@b-kirby)
    • #14872 fix(webdriverio): correct withinViewport check logic for isDisplayed … (@mccmrunal)
  • wdio-junit-reporter
    • #14881 fix(wdio-junit-reporter): add property support for Cucumber tests (@mccmrunal)
  • wdio-cli, wdio-config, webdriver
    • #14880 fix(wdio-cli): respect maxInstancesPerCapability for dynamic capabili… (@mccmrunal)
  • wdio-appium-service
    • #14877 fix(appium-service): ignore warnings and debugger messages in launcher (@mccmrunal)
  • wdio-allure-reporter, wdio-browserstack-service, wdio-config, wdio-runner, webdriver, webdriverio
  • webdriver
  • create-wdio

:nail_care: Polish

  • wdio-allure-reporter
    • #14888 allure-reporter: add mode and excluded properties for parameters (@todti)
  • wdio-browser-runner, wdio-utils, webdriver

:memo: Documentation

  • #14889 docs(wdio-camera-service): Add wdio-camera-service to 3rd-party services list (@Winify)
  • #14813 Replacing of Twitter with 𝕏 (@fpereira1)

:house: Internal

Committers: 12

v9.20.1 (2025-11-18)

:bug: Bug Fix

  • wdio-browserstack-service, wdio-cli, wdio-config, wdio-sauce-service, wdio-shared-store-service, webdriverio
    • #14802 🐛⏪️ revert: "tsConfigPath in wdio.conf (#14664)" (@sh41)
  • webdriverio
  • webdriver
    • #14756 fix(webdriver): invoke terminate on all unsuccessful websocket candidates (@pokdeep)
  • wdio-webdriver-mock-service, webdriverio
    • #14853 Fix: Prevent stale CSS property reads in WebDriver Bidi mode (@ivanovicu)
  • wdio-cli
    • #14846 fix wdio repl when run with multiremote capabilities (@zhirzh)

:memo: Documentation

Committers: 10

v9.20.0 (2025-09-27)

:rocket: New Feature

  • wdio-allure-reporter

:bug: Bug Fix

  • webdriver
    • #14760 fix(webdriver): Fix no retrying requests when unexpected token on responses occurs (like on HTML responses) (@Nyaran)
  • wdio-cucumber-framework
    • #14763 feat(cucumber): Fix skipping tests with skip tag using complex regular expressions (@Nyaran)
  • wdio-allure-reporter
  • webdriverio
    • #14714 fix(attach-params): user options should override detectBackend (@NaamuKim)
  • wdio-utils
    • #14750 feat(utils): Fix reduce function to use the initial value parameter (@Nyaran)

:nail_care: Polish

:memo: Documentation

:house: Internal

  • #14748 chore(.nvmrc) upgrade node version to fix continuous release (@NaamuKim)

Committers: 15

v9.19.2 (2025-08-24)

:bug: Bug Fix

  • wdio-junit-reporter
    • #14706 fix(junit-reporter): improve error handling and skipped test reportin… (@nair-sumesh)
  • webdriverio
  • wdio-local-runner, wdio-types, wdio-xvfb

:nail_care: Polish

  • wdio-browserstack-service
    • #14704 Add chaining of multiple layers of overwritten command definitions (@amaanbs)

Committers: 4

v9.19.1 (2025-08-12)

:nail_care: Polish

  • wdio-local-runner, wdio-types, wdio-xvfb

Committers: 1

v9.19.0 (2025-08-11)

:rocket: New Feature

:bug: Bug Fix

:nail_care: Polish

:memo: Documentation

Committers: 6

v9.18.4 (2025-07-23)

:nail_care: Polish

  • webdriverio
    • #14659 polish(webdriverio): expose contentVisibilityAuto, opacityProperty and visibilityProperty to waitForDisplayed (@erwinheitzman)

Committers: 1

v9.18.3 (2025-07-22)

:bug: Bug Fix

  • webdriverio

Committers: 1

v9.18.2 (2025-07-21)

:bug: Bug Fix

Committers: 3

v9.18.0 (2025-07-16)

:bug: Bug Fix

  • create-wdio, wdio-browserstack-service, wdio-cucumber-framework, wdio-json-reporter, wdio-logger, wdio-mocha-framework, wdio-utils, webdriver, webdriverio
  • webdriverio
    • #14642 fix: avoid starting a timeout if the timer was resolved immediately (@sheremet-va)
  • webdriver, webdriverio

:nail_care: Polish

  • wdio-utils
    • #14634 feat: do not attach prefs when debuggerAddress is specified (@uladhsi)
  • wdio-cli

:memo: Documentation

:house: Internal

  • wdio-browserstack-service, wdio-cli, wdio-lighthouse-service, wdio-reporter, wdio-static-server-service, wdio-sumologic-reporter, wdio-webdriver-mock-service, webdriver, webdriverio
  • Other
    • #14633 ci: skip test suite for pushes that change only markdown files (@kitsiosk)

Committers: 6

v9.17.0 (2025-07-09)

:rocket: New Feature

  • create-wdio, wdio-cli

:bug: Bug Fix

  • wdio-browser-runner, wdio-cucumber-framework, wdio-globals, wdio-mocha-framework, wdio-utils
  • webdriver
  • webdriverio
    • #14587 [BUG-14499] - Improved switchFrame for delayed iframe contexts (@vishnuv688)
  • wdio-allure-reporter, wdio-reporter, wdio-utils, webdriverio
  • wdio-local-runner
    • #14611 fix(@wdio/local-runner): added graceful exit on SIGINT (@DQRI)
  • wdio-browser-runner, wdio-cli, wdio-globals, wdio-jasmine-framework, wdio-local-runner, wdio-runner, wdio-utils, webdriver, webdriverio
  • wdio-mocha-framework
    • #14506 fix(mocha-framework): report spec load error as failure in after hook (@lezram)

:memo: Documentation

:house: Internal

  • wdio-browserstack-service, wdio-lighthouse-service, wdio-utils
  • Other

Committers: 12

v9.16.0 (2025-06-23)

:eyeglasses: Spec Compliancy

:rocket: New Feature

  • wdio-config, wdio-runner, wdio-types

:bug: Bug Fix

:nail_care: Polish

  • wdio-browserstack-service
    • #14538 Added support for running accessibility on Non-browserstack infrastructure (@Bhargavi-BS)

:memo: Documentation

  • Other
  • wdio-appium-service, wdio-cli, wdio-protocols, wdio-types, webdriverio

:house: Internal

Committers: 10

v9.15.0 (2025-05-30)

:rocket: New Feature

  • wdio-logger, wdio-runner, wdio-types, webdriver, webdriverio
    • #13938 feat(runner+browserstack): Mask sensitive data for Reporters (and more) (@dprevost-LMI)
  • wdio-protocols

:bug: Bug Fix

:nail_care: Polish

:memo: Documentation

  • webdriverio

Committers: 7

v9.14.0 (2025-05-15)

:rocket: New Feature

:bug: Bug Fix

  • wdio-spec-reporter
    • #14472 chore(@wdio/spec-reporter): file name print format (@unickq)

:nail_care: Polish

  • wdio-types
    • #14474 add browserstack camera-image-injection to wdio-types capabilities (@DoreyKiss)
  • wdio-browserstack-service
    • #14466 Added changes to skip tests for mocha framework for browserstack session (@pri-gadhiya)

:house: Internal

  • wdio-types
    • #14481 feat: adding check in normalizeDoc function to make sure readmeArr is of string type (@Kauanldsbarbosa)

Committers: 5

v9.13.0 (2025-05-12)

:eyeglasses: Spec Compliancy

  • wdio-protocols

:bug: Bug Fix

  • webdriver
    • #14463 fix(webdriver): stop cloning request so await response.json() can abort properly (@dprevost-LMI)
    • #14437 Fix avoid misleading BiDi connection failure message (@Rondleysg)
  • webdriverio
    • #14449 fix(bidi-dialog): only dismiss dialogs in active browsing context (@Rondleysg)
    • #14448 fix(bidi-dialog): only accept dialogs in active browsing context (@Rondleysg)
  • wdio-utils
    • #14427 fix: disable Chrome's password manager leak detection as it can block test execution (@erwinheitzman)
  • wdio-junit-reporter

:nail_care: Polish

  • wdio-allure-reporter, wdio-concise-reporter, wdio-reporter, wdio-spec-reporter
    • #14454 feat(reporter): add browserName function and use where required (@Delta456)
  • wdio-browserstack-service

:memo: Documentation

:house: Internal

Committers: 12

v9.12.7 (2025-04-21)

:bug: Bug Fix

Committers: 2

v9.12.6 (2025-04-17)

:rocket: New Feature

  • webdriver
    • 14350 feat: introduce defineConfig function to create a typed configuration object (@erwinheitzman)

:bug: Bug Fix

:nail_care: Polish

  • webdriverio
  • wdio-browserstack-service
    • #14410 fix(@wdio/browserstack-service): node fetch() failure over HTTPS_PROXY=<proxy_url> setup (@mitya555)
  • @wdio/config
    • 14351 polish(@wdio/config): decrease waitforInterval from 500 to 100 to improve execution speed (@erwinheitzman)

Committers: 4

v9.12.5 (2025-04-11)

:eyeglasses: Spec Compliancy

  • wdio-protocols
    • #14379 feat(@wdio/protocols): Add "options" parameter to "terminateApp" command (@Nyaran)

:bug: Bug Fix

  • webdriverio
    • #14406 fix(interception): Return raw non-binary responses without metadata wrapper (@Norva-bugged)
    • #14401 fix(#14368): desync puppeteer-core peer-dep version (@Badisi)
    • #14402 fix: unexpected token '?' on older browsers (@will-stone)
    • #14403 fix(element): improve checkVisibility fallback handling in element.isDisplayed (@paymand)
  • webdriver
    • #14391 fix(webdriver): undici fetch() failure with HTTPS_PROXY=<proxy_url> setup (@mitya555)
  • wdio-browserstack-service

:nail_care: Polish

  • wdio-utils
    • #14392 fix(utils): fix not to judged as screenshot the arg of switch* (@mato533)
  • wdio-browserstack-service

:memo: Documentation

  • webdriverio

Committers: 10

v9.12.4 (2025-04-05)

:bug: Bug Fix

  • webdriver
    • #14376 fix(webdriver): add timeout-related configurable options to ProxyAgent (@mitya555)

:nail_care: Polish

:memo: Documentation

:house: Internal

Committers: 5

v9.12.3 (2025-04-03)

:bug: Bug Fix

  • webdriverio
    • #14360 fix(interception): Properly handle binary response data in WebDriverInterception (@Norva-bugged)
    • #14338 fix: Fixes isDisplayed to always use default params for checkVisibility. (@damencho)
  • Other

:memo: Documentation

:house: Internal

  • wdio-allure-reporter, wdio-browser-runner, wdio-browserstack-service, wdio-cli, wdio-config, wdio-cucumber-framework, wdio-firefox-profile-service, wdio-jasmine-framework, wdio-lighthouse-service, wdio-mocha-framework, wdio-protocols, wdio-runner, wdio-types, wdio-utils, webdriver, webdriverio

Committers: 8

v9.12.2 (2025-03-27)

:rocket: New Feature

  • webdriver
    • #14304 feat(webdriver): support WebSocket options at the BiDi connection (@mato533)

:bug: Bug Fix

:nail_care: Polish

:memo: Documentation

  • Other
  • wdio-cli, wdio-protocols, wdio-sauce-service, wdio-spec-reporter, wdio-types
  • wdio-spec-reporter
    • #14306 updated spec reporter readme - sharable links value with valid sauce sharable link (@vjuturu)

Committers: 13

v9.12.1 (2025-03-20)

:bug: Bug Fix

:nail_care: Polish

  • wdio-cli
  • webdriver
  • wdio-browser-runner, webdriver
    • #14259 fix: Try to resolve ip addresses if no BiDi connection to the host could be established (@mykola-mokhnach)

:memo: Documentation

:house: Internal

Committers: 11

v9.12.0 (2025-03-11)

:rocket: New Feature

:nail_care: Polish

  • webdriverio

:memo: Documentation

  • Other
  • webdriverio
    • #14263 docs: mention that Chrome DevTools protocol is not installed by default and what package is required (@ianrenauld)

Committers: 4

v9.11.0 (2025-03-05)

:rocket: New Feature

  • wdio-cucumber-framework, wdio-reporter, wdio-spec-reporter

:bug: Bug Fix

:nail_care: Polish

:memo: Documentation

:house: Internal

  • #14215 fix(webdriverio): fix failing e2e tests due to language and timezone differences (@erwinheitzman)

Committers: 6

v9.10.1 (2025-02-25)

:bug: Bug Fix

  • wdio-junit-reporter, wdio-reporter, wdio-runner, wdio-spec-reporter, wdio-types, webdriver
  • wdio-browser-runner, wdio-cli, wdio-config, wdio-runner, wdio-utils, webdriverio

Committers: 2

v9.10.0 (2025-02-22)

:rocket: New Feature

:bug: Bug Fix

  • wdio-sauce-service

:nail_care: Polish

  • webdriverio
  • wdio-sauce-service
    • #14209 fix: Remove unused typings file on sauce service (@Nyaran)
    • #14207 Remove default values for tlsPassthroughDomains on sauce service (@Nyaran)

Committers: 3

v9.9.3 (2025-02-18)

:bug: Bug Fix

:nail_care: Polish

  • wdio-browserstack-service

Committers: 2

v9.9.2 (2025-02-18)

:bug: Bug Fix

:memo: Documentation

Committers: 3

v9.9.1 (2025-02-14)

:bug: Bug Fix

  • webdriverio
  • wdio-webdriver-mock-service, webdriverio

:nail_care: Polish

  • eslint-plugin-wdio
  • wdio-browser-runner, wdio-globals, wdio-jasmine-framework, wdio-runner

Committers: 2

v9.8.0 (2025-02-06)

:bug: Bug Fix

:nail_care: Polish

  • wdio-sauce-service, wdio-spec-reporter
    • #14130 Add support for Sauce Connect 5, drop support for Sauce Connect 4 (@budziam)
  • wdio-cli

Committers: 3

v9.7.3 (2025-02-05)

:bug: Bug Fix

:nail_care: Polish

  • wdio-cli

Committers: 2

v9.7.2 (2025-01-29)

:bug: Bug Fix

:nail_care: Polish

  • wdio-utils, webdriverio

:memo: Documentation

Committers: 4

v9.7.1 (2025-01-25)

:bug: Bug Fix

:memo: Documentation

  • wdio-cli
    • #14111 updating constants and services lists with wdio-roku-service refs (@jonyet)

Committers: 2

v9.7.0 (2025-01-24)

:bug: Bug Fix

:nail_care: Polish

Committers: 2

v9.6.4 (2025-01-24)

:nail_care: Polish

Committers: 1

v9.6.3 (2025-01-23)

:bug: Bug Fix

Committers: 1

v9.6.2 (2025-01-23)

:bug: Bug Fix

  • wdio-webdriver-mock-service, webdriverio
  • wdio-cli, wdio-types, webdriverio
  • wdio-mocha-framework, wdio-runner

:memo: Documentation

Committers: 2

v9.6.1 (2025-01-23)

:bug: Bug Fix

Committers: 2

v9.6.0 (2025-01-21)

:rocket: New Feature

  • wdio-browserstack-service
  • webdriver, webdriverio

:bug: Bug Fix

:nail_care: Polish

  • webdriverio

:memo: Documentation

Committers: 4

v9.5.7 (2025-01-12)

:bug: Bug Fix

Committers: 1

v9.5.6 (2025-01-12)

:bug: Bug Fix

Committers: 1

v9.5.5 (2025-01-10)

:bug: Bug Fix

Committers: 1

v9.5.4 (2025-01-10)

:bug: Bug Fix

:nail_care: Polish

Committers: 1

v9.5.3 (2025-01-09)

:bug: Bug Fix

Committers: 1

v9.5.2 (2025-01-09)

:bug: Bug Fix

:memo: Documentation

:house: Internal

Committers: 3

v9.5.1 (2025-01-03)

:bug: Bug Fix

  • webdriverio
  • wdio-appium-service
    • #13913 chore(appium-service): filter out Debugger attached as errorMessage (@Delta456)

:nail_care: Polish

  • wdio-appium-service
  • webdriver
    • #14020 fix(webdriver): allow BiDiCore to send declared headers (@navin772)

Committers: 4

v9.5.0 (2024-12-30)

:rocket: New Feature

:bug: Bug Fix

:nail_care: Polish

Committers: 2

v9.4.5 (2024-12-19)

:nail_care: Polish

Committers: 1

v9.4.4 (2024-12-19)

:nail_care: Polish

  • wdio-testingbot-service

:house: Internal

  • eslint-plugin-wdio, wdio-allure-reporter, wdio-appium-service, wdio-browser-runner, wdio-browserstack-service, wdio-cli, wdio-config, wdio-cucumber-framework, wdio-firefox-profile-service, wdio-globals, wdio-jasmine-framework, wdio-json-reporter, wdio-junit-reporter, wdio-lighthouse-service, wdio-local-runner, wdio-logger, wdio-mocha-framework, wdio-protocols, wdio-repl, wdio-reporter, wdio-runner, wdio-sauce-service, wdio-shared-store-service, wdio-smoke-test-cjs-service, wdio-smoke-test-service, wdio-spec-reporter, wdio-static-server-service, wdio-sumologic-reporter, wdio-testingbot-service, wdio-types, wdio-utils, wdio-webdriver-mock-service, webdriver, webdriverio

Committers: 2

v9.4.3 (2024-12-17)

:bug: Bug Fix

  • wdio-cli, wdio-config, wdio-local-runner, webdriver
  • wdio-utils, webdriver
  • wdio-types
    • #13988 wdio-types: add platformVersion field for BrowserStackCapabilities (@Delta456)

:nail_care: Polish

  • wdio-utils

Committers: 4

v9.4.2 (2024-12-12)

:bug: Bug Fix

:nail_care: Polish

  • wdio-cli
  • wdio-utils, webdriverio
  • wdio-browserstack-service, wdio-types

:memo: Documentation

Committers: 7

v9.4.1 (2024-11-27)

:bug: Bug Fix

Committers: 1

v9.4.0 (2024-11-26)

:rocket: New Feature

:bug: Bug Fix

:nail_care: Polish

Committers: 2

v9.3.1 (2024-11-22)

:rocket: New Feature

:nail_care: Polish

  • wdio-cucumber-framework
  • webdriverio

Committers: 3

v9.3.0 (2024-11-20)

:rocket: New Feature

:bug: Bug Fix

:nail_care: Polish

:memo: Documentation

  • #13903 chore(docs): add info setting up maxInstances and specs in docs (@harsha509)

Committers: 3

v9.2.15 (2024-11-14)

:nail_care: Polish

  • wdio-runner
    • #13878 fix(@wdio/runner): Respect excludes in capabilities in multiremote case. (@damencho)

Committers: 1

v9.2.14 (2024-11-14)

:rocket: New Feature

:nail_care: Polish

  • wdio-cucumber-framework, wdio-reporter, wdio-spec-reporter

Committers: 2

v9.2.12 (2024-11-11)

:bug: Bug Fix

:nail_care: Polish

Committers: 1

v9.2.11 (2024-11-07)

:bug: Bug Fix

  • webdriverio
    • #13863 fix(webdriverio): properly handle unresolved element on switchFrame input in non-BIDI scenario (@gavvvr)
    • #13857 fix(webdriverio): switchWindow supports exact window handle match (@jan-molak)
  • wdio-browserstack-service
    • #13858 fix: stacktrace for testobservability (@07souravkunda)
    • #13833 Build Unification - WDIO Mocha, Cucumber, Jasmine - Browserstack Test Observability, Accessibility & Percy (@amaanbs)

:nail_care: Polish

:memo: Documentation

Committers: 6

v9.2.10 (2024-11-05)

:bug: Bug Fix

:nail_care: Polish

Committers: 2

v9.2.9 (2024-11-01)

:bug: Bug Fix

  • wdio-appium-service

Committers: 1

v9.2.8 (2024-11-01)

:bug: Bug Fix

  • webdriverio
  • wdio-utils
    • #13796 feat(chromedriver): set NODE_OPTIONS empty to allow electron to work (@Delta456)

:nail_care: Polish

Committers: 2

v9.2.5 (2024-10-29)

:bug: Bug Fix

Committers: 2

v9.2.4 (2024-10-28)

:bug: Bug Fix

Committers: 1

v9.2.2 (2024-10-28)

:bug: Bug Fix

:nail_care: Polish

  • wdio-appium-service
  • wdio-protocols
  • webdriverio
    • #13793 feat: enhance newWindow function to support 'tab' or 'window' types (@harsha509)

:memo: Documentation

:house: Internal

Committers: 11

v9.2.0 (2024-10-12)

:house: Internal

Committers: 2

v9.1.6 (2024-10-10)

:bug: Bug Fix

Committers: 1

v9.1.5 (2024-10-10)

:bug: Bug Fix

Committers: 1

v9.1.4 (2024-10-09)

:bug: Bug Fix

  • webdriverio
    • #13751 fix(webdriverio): make name polyfill compatible with old browsers (@mhassan1)

Committers: 2

v9.1.3 (2024-10-08)

:bug: Bug Fix

:nail_care: Polish

  • webdriverio
  • webdriver

:house: Internal

Committers: 5

v9.1.2 (2024-09-28)

:bug: Bug Fix

:nail_care: Polish

  • wdio-types, webdriver
  • wdio-cli, wdio-sauce-service, wdio-spec-reporter, wdio-types, webdriverio

Committers: 3

v9.1.1 (2024-09-26)

:bug: Bug Fix

:nail_care: Polish

:memo: Documentation

Committers: 4

v9.1.0 (2024-09-24)

:rocket: New Feature

:bug: Bug Fix

:nail_care: Polish

  • wdio-utils, webdriver
  • wdio-appium-service, wdio-sauce-service, wdio-testingbot-service, wdio-utils, webdriver, webdriverio
  • wdio-spec-reporter, wdio-types, webdriverio
  • wdio-junit-reporter
  • wdio-browserstack-service

:memo: Documentation

Committers: 13

v9.0.8 (2024-09-05)

:rocket: New Feature

:bug: Bug Fix

  • webdriverio
  • Other
  • eslint-plugin-wdio, wdio-allure-reporter, wdio-appium-service, wdio-browser-runner, wdio-browserstack-service, wdio-cli, wdio-concise-reporter, wdio-config, wdio-cucumber-framework, wdio-dot-reporter, wdio-firefox-profile-service, wdio-globals, wdio-jasmine-framework, wdio-junit-reporter, wdio-lighthouse-service, wdio-local-runner, wdio-logger, wdio-mocha-framework, wdio-repl, wdio-reporter, wdio-runner, wdio-sauce-service, wdio-shared-store-service, wdio-smoke-test-cjs-service, wdio-smoke-test-reporter, wdio-smoke-test-service, wdio-spec-reporter, wdio-static-server-service, wdio-sumologic-reporter, wdio-testingbot-service, wdio-types, wdio-utils, wdio-webdriver-mock-service, webdriver, webdriverio
  • wdio-browser-runner

:nail_care: Polish

  • wdio-browserstack-service

:memo: Documentation

Committers: 8

v9.0.7 (2024-08-21)

:bug: Bug Fix

Committers: 1

v9.0.6 (2024-08-21)

:bug: Bug Fix

  • webdriver
  • webdriver, webdriverio
  • wdio-utils
    • #13426 fix(@wdio/cli): correctly detect chrome headless shell as chrome #13390 (@BorisOsipov)

Committers: 2

v9.0.5 (2024-08-20)

:bug: Bug Fix

:nail_care: Polish

  • webdriver

:memo: Documentation

Committers: 2

v9.0.4 (2024-08-19)

:bug: Bug Fix

:house: Internal

  • wdio-browser-runner, wdio-cucumber-framework, wdio-mocha-framework, wdio-smoke-test-cjs-service, wdio-smoke-test-service, wdio-utils, webdriverio
  • Other

Committers: 3

v9.0.3 (2024-08-16)

:bug: Bug Fix

Committers: 1

v9.0.2 (2024-08-16)

:bug: Bug Fix

Committers: 2

v9.0.1 (2024-08-15)

:bug: Bug Fix

  • wdio-browser-runner, webdriverio

Committers: 1

v9.0.0 (2024-08-15)

:boom: Breaking Change

  • wdio-cli, wdio-devtools-service, wdio-lighthouse-service, wdio-utils, webdriver, webdriverio
  • wdio-allure-reporter, wdio-appium-service, wdio-browser-runner, wdio-browserstack-service, wdio-cli, wdio-concise-reporter, wdio-config, wdio-cucumber-framework, wdio-devtools-service, wdio-firefox-profile-service, wdio-jasmine-framework, wdio-json-reporter, wdio-junit-reporter, wdio-local-runner, wdio-mocha-framework, wdio-reporter, wdio-runner, wdio-sauce-service, wdio-shared-store-service, wdio-spec-reporter, wdio-testingbot-service, wdio-types, wdio-utils, wdio-webdriver-mock-service, webdriver, webdriverio
  • @wdio/protocols
  • webdriverio

:rocket: New Feature

:bug: Bug Fix

:nail_care: Polish

  • webdriver
  • wdio-cli, wdio-config, wdio-local-runner, wdio-runner, wdio-types, webdriverio

:house: Internal

Committers: 5