v10.2.0 (2026-11-06)
💥 Breaking Change
wdio-cucumber-framework,wdio-cucumberjs-json-reportercreate-wdio,eslint-plugin-wdio,wdio-ai-service,wdio-allure-reporter,wdio-appium-service,wdio-browser-runner,wdio-cli,wdio-concise-reporter,wdio-config,wdio-cucumber-framework,wdio-cucumberjs-json-reporter,wdio-display-server,wdio-dot-reporter,wdio-firefox-profile-service,wdio-globals,wdio-html-reporter,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-session,wdio-shared-store-service,wdio-smoke-test-cjs-service,wdio-smoke-test-reporter,wdio-smoke-test-service,wdio-snapshot,wdio-spec-reporter,wdio-static-server-service,wdio-sumologic-reporter,wdio-testingbot-service,wdio-types,wdio-utils,wdio-video-reporter,wdio-webdriver-mock-service,wdio,webdriver,webdriveriowdio-cucumber-framework,wdio-reporter
🚀 New Feature
wdio-allure-reporter,wdio-appium-service,wdio-concise-reporter,wdio-cucumber-framework,wdio-cucumberjs-json-reporter,wdio-dot-reporter,wdio-html-reporter,wdio-jasmine-framework,wdio-junit-reporter,wdio-mocha-framework,wdio-reporter,wdio-spec-reporter,wdio-types,wdio-video-reporter,wdio-vitest-frameworkwdio-html-reporterwdio-allure-reporter,wdio-junit-reporter,wdio-reporter,wdio-vitest-frameworkwdio-cli,wdio-config,wdio-cucumber-framework,wdio-mocha-framework,wdio-types,wdio-utils,wdio-vitest-frameworkwdio-reporter,wdio-video-reporterwdio-reportercreate-wdio,wdio-html-reporter,wdio-video-reportercreate-wdio,wdio-video-reporter,webdrivercreate-wdio,wdio-cucumberjs-json-reporter
🐛 Bug Fix
wdio-shared-store-service- #16360 fix(shared-store): preserve stored null values (@everton-dgn)
- #16362 fix(@wdio/shared-store-service): encode keys in request paths (@everton-dgn)
webdriverio- #16364 fix(webdriverio): encode a JSON body of mock.request() as UTF-8 (@RaphaelFakhri)
- #16359 fix(webdriverio): remove the BiDi Mapper log workaround, Chrome 157 fixes the slowdown (@plum117)
- #16322 fix(webdriverio): support non-BMP Unicode characters in key actions (@ML642)
- #16157 fix(webdriverio): escape quotes in selectByAttribute values (@ML642)
- #16306 fix(webdriverio): let a tab or parallel-test mock override a session-wide mock of the same url (@plum117)
- #16230 Fix/setvalue rejected direct value 16228 (@mccmrunal)
- #16273 fix(webdriverio): scope mockRestoreAll and mockClearAll to the tab or parallel test that calls them (@plum117)
- #15941 fix(webdriverio): port multiremote mockRestoreAll scoping to v10 (#15842) (@dor-sr)
- #16225 fix(webdriverio): remove the log of the ChromeDriver BiDi Mapper so that BiDi commands do not get slower (@plum117)
- #16194 fix(webdriverio): only match links with link text selectors in BiDi sessions (@mccmrunal)
- #16216 fix(webdriverio): open a tab or window of a parallel test from the window of that test (@plum117)
- #16199 fix(webdriverio): allow WebDriver BiDi screenshots in parallel mode (@plum117)
- #16139 fix(webdriverio): isEqual and scrollIntoView on an element that the page rendered again (@plum117)
- #16138 fix(webdriverio): set the W3C script timeout when an Appium iOS session starts (@plum117)
- #16136 fix(webdriverio): find a stale element of a BiDi frame or tab again (@plum117)
wdio-browser-runner,wdio-globals,wdio-jasmine-framework,wdio-runner,wdio-session,wdio-snapshotwdio-runnerwdio-utils- #16340 fix(@wdio/utils): measure the Mocha timer with the clock of the timers (@plum117)
- #16337 fix(@wdio/utils): name the Jasmine spec in the WDIO timeout error (@plum117)
- #16320 feat(@wdio/utils): create the Firefox profiles in RUNNER_TEMP on Windows in GitHub Actions, and type every driver option for users (@plum117)
- #16303 fix(@wdio/utils): don't pass spawnOpts to Chromedriver as a --spawn-ppts flag (@Winify)
wdio-snapshot,wdio-utils,webdriveriowdio-config,wdio-cucumber-framework,wdio-runner,wdio-utils,webdriverio- #16299 fix: reloadSession state, url() headers mock, spec selection and spec/hook timeouts (@mccmrunal)
wdio-protocols,webdriveriowdio-types,webdriverwdio-ai-service,wdio-allure-reporter,wdio-cli,wdio-cucumber-framework,wdio-html-reporter,wdio-jasmine-framework,wdio-junit-reporter,wdio-mocha-framework,wdio-reporter,wdio-spec-reporter,wdio-utilswdio-session,webdriveriowdio-protocols,webdriver- #16290 fix(webdriver): don't retry W3C errors, fix retried deleteSession and error args; uninstallAddOn is POST (@mccmrunal)
wdio-cli,webdriver- #16265 fix(webdriver, @wdio/cli): don't crash on a failed BiDi attach, and reject --shard 0/N (@mccmrunal)
wdio-html-reporter,wdio-mocha-framework,wdio-reporter,wdio-video-reporterwdio-allure-reporter- #16167 fix(@wdio/allure-reporter): carry the hook error and a historyId on failed hook results (@horizonbymuneeb)
wdio-html-reporterwdio-allure-reporter,wdio-cli,wdio-html-reporter,wdio-junit-reporter,wdio-reporter,wdio-vitest-frameworkwdio-utils,webdriverwdio-sessionwdio-allure-reporter,wdio-html-reporter,wdio-json-reporter,wdio-junit-reporter,wdio-reporter,wdio-spec-reporter,wdio-vitest-frameworkwdio-configwdio-cucumber-framework,wdio-cucumberjs-json-reporter,wdio-reporter,wdio-spec-reporterwdio-jasmine-framework- #16195 fix(@wdio/jasmine-framework): fail the run when an afterAll hook fails (@mccmrunal)
wdio-junit-reporter- #16196 fix(@wdio/junit-reporter): report failed Cucumber hooks (@mccmrunal)
webdriver- #16192 fix(webdriver): apply strictSSL to HTTP requests in Node (@mccmrunal)
- #16037 fix(webdriver): keep aborting in-flight commands after the first command completes (@mccmrunal)
wdio-sauce-service,wdio-testingbot-service,wdio-types- #16197 fix(@wdio/sauce-service, @wdio/testingbot-service): only count the last attempt of a retried Cucumber scenario (@mccmrunal)
wdio-cli- #16189 fix(@wdio/cli): support filesToWatch globs and wdio:specs capabilitieies (@mccmrunal)
wdio-allure-reporter,wdio-cucumber-framework,wdio-html-reporter,wdio-reporter,wdio-spec-reporter,wdio-video-reporterwdio-allure-reporter,wdio-html-reporterwdio-mocha-frameworkwdio-ai-servicewdio-snapshotwdio-allure-reporter,wdio-mocha-framework,wdio-reporter,wdio-utilswdio-appium-service- #16048 @wdio/appium-service: smoothen out the appium-service (@wswebcreation)
wdio-browser-runner,wdio-cli,wdio-cucumber-framework,wdio-runner- #16186 Fix/v10 p1 bugs 16182 16185 (@mccmrunal)
wdio-cucumber-framework,wdio-spec-reporterwdio-session,wdio-snapshotwdio-allure-reporter,wdio-cucumber-framework,wdio-junit-reporter,wdio-mocha-framework,wdio-reporter,wdio-runner,wdio-spec-reporter,wdio-typescreate-wdio,wdio-cucumber-framework- #16148 fix(@wdio/cucumber-framework): list the matching step definitions of an ambiguous step (@plum117)
- #16107 fix(cucumber): clarify ambiguous step definitions (@carrerasdarren-cell)
💅 Polish
create-wdio,wdio-session
📝 Documentation
create-wdio,wdio-ai-service,wdio-cli,wdio-html-reporter,wdio-junit-reporter,wdio-session,wdio-shared-store-service,wdio-snapshot,wdio-types,wdio-video-reporter,wdio-vitest-framework,webdriver,webdriverio- Other
- #16367 docs(devtools): render capability cells as a plain mark and a footnote number (@vishnuv688)
- #16353 docs(website): show the new BrowserStack logo everywhere, in both themes (@vishnuv688)
- #16351 docs(website): use new BrowserStack logo in sponsors section (@AutomatedTester)
- #16302 docs(mcp): update MCP docs for v4 (@Winify)
- #16287 docs(devtools): describe wait rows, assertion targets, pytest trace precedence, and plain capability ticks (@vishnuv688)
- #16283 Revert "docs(devtools): mark the Source tab tested for every adapter" (@vishnuv688)
- #16280 docs(devtools): mark the Source tab tested for every adapter (@vishnuv688)
- #16256 docs(devtools): generate the capability tables from the devtools feature list (@vishnuv688)
- #16270 docs(devtools): read a heading example.com still serves in the Selenium example (@vishnuv688)
- #16176 docs(devtools): Node.js 22.19 floor and native app network capture (@vishnuv688)
- #16071 docs(devtools): bring the DevTools pages to parity with the adapters (@vishnuv688)
wdio-lighthouse-service,wdio-vitest-frameworkwdio-types,webdriverio
🏠 Internal
wdio-lighthouse-service- #16365 chore(deps): bump the patch-deps-updates-main group with 7 updates (@dependabot[bot])
- #16335 chore(deps): bump the minor-deps-updates-main group with 4 updates (@dependabot[bot])
- #16295 chore(deps): bump the patch-deps-updates-main group across 1 directory with 7 updates (@dependabot[bot])
- #16248 chore(deps): bump the patch-deps-updates-main group across 1 directory with 9 updates (@dependabot[bot])
- #16177 chore(deps): bump the patch-deps-updates-main group with 12 updates (@dependabot[bot])
wdio-local-runnerwdio-vitest-frameworkwdio-appium-service,wdio-lighthouse-service- #16338 chore(deps): bump the patch-deps-updates-main group across 1 directory with 7 updates (@dependabot[bot])
- Other
- #16341 ci: build the Void Display Server image from the Fastly mirror (@plum117)
- #16328 ci: retry the Display Server image build once after a download error (@plum117)
- #16329 ci: use the Dependabot default cooldown of 3 days (@plum117)
- #16319 chore(deps): bump follow-redirects from 1.16.0 to 1.16.2 (@dependabot[bot])
- #16301 chore(deps): bump @hono/node-server from 2.1.1 to 2.1.5 (@dependabot[bot])
- #16297 chore(deps): bump the minor-deps-updates-main group with 4 updates (@dependabot[bot])
- #16271 ci: auto-merge only minor and patch Dependabot updates (@plum117)
- #16268 ci: let Dependabot PRs auto-merge when CodeQL is neutral, and stop accepting cancelled checks (@plum117)
- #16259 ci(dependabot): hold recast 0.24 on v9 (@plum117)
- #16250 chore(deps): bump the minor-deps-updates-main group with 5 updates (@dependabot[bot])
- #16247 ci: let Dependabot open minor and patch updates for v9 (@plum117)
- #16235 chore(deps): update @wdio/electron-service to 10.4.1 (@plum117)
- #16215 chore(deps): bump fast-uri from 3.1.8 to 3.1.9 (@dependabot[bot])
- #16178 chore(deps): bump the minor-deps-updates-main group across 1 directory with 9 updates (@dependabot[bot])
- #16212 fix: repair the dev container base image and the Edge install (@plum117)
- #16206 test(e2e): pin Chrome 155 for the specs that open a tab with window.open (@plum117)
- #16200 chore(deps): bump dompurify from 3.4.16 to 3.4.17 (@dependabot[bot])
- #16159 chore(deps): bump launch-editor from 2.10.0 to 2.14.2 (@dependabot[bot])
- #16156 chore(deps): bump hono from 4.13.9 to 4.13.13 (@dependabot[bot])
- #16140 test(e2e): add local mobile web suites for iOS and Android with Appium (@plum117)
wdio-config,wdio-cucumber-framework- #16317 chore(deps): bump glob from 13.0.6 to 14.0.2 (@dependabot[bot])
wdio-cli,wdio-config- #16318 chore(deps): bump minimatch from 10.2.6 to 11.0.1 (@dependabot[bot])
create-wdio- #16252 chore(deps): bump normalize-package-data from 8.0.0 to 9.0.0 in the major-deps-updates-main group (@dependabot[bot])
wdio-sessionwdio-webdriver-mock-service,webdriverwdio-cli,wdio-concise-reporter,wdio-html-reporter,wdio-spec-reporter,wdio-utils,webdriveriowdio-cucumber-frameworkwdio-allure-reporterwdio
Committers: 15
- David Burns (@AutomatedTester)
- David Prévost (@plum117)
- Denys Riabykh (@sp1r1n)
- Edgars Eglītis (@eglitise)
- MRUNAL CHAUDHARI (@mccmrunal)
- Martsin Lazouski (@ML642)
- Muneeb Anjum (@horizonbymuneeb)
- Raphael Fakhri (@RaphaelFakhri)
- Shrey Shekhar (@sh011)
- Vince Graics (@Winify)
- Vishnu Vardhan (@vishnuv688)
- Wim Selles (@wswebcreation)
- @carrerasdarren-cell
- dOR (@dor-sr)
- Éverton Toffanetto (@everton-dgn)