v9.33.0 (2026-11-02)
π Spec Compliancy
wdio-protocols,webdriver,webdriverio
π₯ Breaking Change
create-wdio,eslint-plugin-wdio,wdio-allure-reporter,wdio-appium-service,wdio-browser-runner,wdio-cli,wdio-concise-reporter,wdio-config,wdio-cucumber-framework,wdio-dot-reporter,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-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,wdio-xvfb,webdriver,webdriveriowdio-lighthouse-service,wdio-runner,webdriverio- #15704 fix: MultiRemote getInstance now throws instead of returning undefined (@dprevost-LMI)
π New Feature
wdio-cli,wdio-reporter,webdriveriowdio-spec-reporter,wdio-types,webdriverio- #15930 feat: support the Sauce Labs asia-south-2 data center - v9 (@bahrimootaz)
eslint-plugin-wdio,wdio-browser-runner,wdio-globals,wdio-jasmine-framework,wdio-local-runner,wdio-runner- #15838 feat: upgrade to expect-wdio 7 for Multi-remote Assertion Support (@dprevost-LMI)
create-wdio- #15848 feat(create-wdio): offer the devtools service in the wizard (@vishnuv688)
π Bug Fix
wdio-utils- #16345 fix(@wdio/utils): use an installed browser when only its archive cleanup fails (v9, #16008) (@plum117)
- #16141 fix(@wdio/utils): unzip browsers and drivers with an OS tool on Node 26 (v9, #15608) (@plum117)
- #15899 fix(@wdio/utils): port browser install retry cleanup to v9 (#15893) (@MannXo)
- #15805 fix(@wdio/utils): do not log short strings as screenshots (@aayushisabharwal)
- #15678 fix(@wdio/utils): share a driver install between concurrent setups (@PloneMraz)
wdio-allure-reporter- #16205 fix(@wdio/allure-reporter): carry the hook error and a historyId on failed hooks (v9 backport) (@horizonbymuneeb)
wdio-cli,wdio-types,webdriverwdio-browser-runner- #16266 fix(@wdio/browser-runner): polyfill path and __dirname in pre-bundled deps (v9) (@plum117)
- #15597 fix(@wdio/browser-runner): import custom Vite and Stencil config files via file URLs (@kaanisthatyou)
wdio-xvfb- #16180 fix(@wdio/xvfb): keep the worker IPC channel off the fd xvfb-run closes (v9, #15685) (@goosewobbler)
webdriver- #16038 fix(webdriver): keep aborting in-flight commands after the first command completes (v9 backport) (@mccmrunal)
wdio-cliwebdriverio- #15843 fix(webdriverio): restore only own mocks in multiremote mockRestoreAll (@dor-sr)
- #16109 fix(webdriverio): pass element arguments of execute() in BiDi as in Classic (v9 backport of #16067) (@plum117)
- #15746 fix(webdriverio): use native scrollIntoView for elements in nested scoll containers (#15740) (@mccmrunal)
- #15738 fix(webdriverio): avoid blocked Firefox mock responses (@dlowzzxx)
- #15691 fix(webdriverio): respect fetchResponse in mock responses (@ML642)
- #15643 fix(webdriverio): release an intercepted request once per phase (@PloneMraz)
wdio-utils,webdriverio- Other
wdio-local-runner- #15634 fix(@wdio/local-runner): keep --enable-source-maps and de-dupe worker NODE_OPTIONS (@nikolas-sapa)
π Documentation
- #16029 docs: give PartialMatcher its type argument in the custom matcher example (v9 backport of #16028) (@plum117)
- #15687 docs(devtools): add a mobile page and follow the examples rename (@vishnuv688)
- #15810 docs(website): read the Expect API docs from the expect-webdriverio v7 branch (@dprevost-LMI)
π Internal
- Other
- #16347 ci: keep v10 as the latest GitHub release when v9 is released (v9) (@plum117)
- #16339 ci: publish v9 releases from the v9 branch with the v9 npm tag (v9) (@plum117)
- #16333 chore(deps-dev): bump the minor-deps-updates-v9 group with 4 updates (@dependabot[bot])
- #16298 chore(deps-dev): bump the minor-deps-updates-v9 group with 4 updates (@dependabot[bot])
- #16272 ci: auto-merge only minor and patch Dependabot updates on v9, and not on cancelled checks (@plum117)
- #16258 chore: remove unused root globals and @types/archiver on v9 (@plum117)
- #16246 ci: run the Test workflow on pushes to v9 (@plum117)
- #16104 fix(docs): use the v9 translations and v9.webdriver.io on the v9 site (v9) (@plum117)
- #15966 test(e2e): use guinea-pig pages instead of external sites (v9 backport of #15874) (@dprevost-LMI)
- #15688 test: improve watch mode smoke tests (@ML642)
- #15644 test: add smoke test for watch mode (@ML642)
wdio-appium-service,wdio-lighthouse-service- #16332 chore(deps): bump the patch-deps-updates-v9 group with 3 updates (@dependabot[bot])
wdio-lighthouse-service- #16296 chore(deps): bump the patch-deps-updates-v9 group with 2 updates (@dependabot[bot])
wdio-browser-runner- #16263 chore(deps): bump the minor-deps-updates-v9 group across 1 directory with 35 updates (@dependabot[bot])
wdio-appium-service,wdio-lighthouse-service,wdio-webdriver-mock-service- #16267 chore(deps): bump the patch-deps-updates-v9 group across 1 directory with 29 updates (@dependabot[bot])
eslint-plugin-wdio,wdio-cli
Committers: 16
- David Prevost (@dprevost-LMI)
- David PrΓ©vost (@plum117)
- Erin Krasniqi (@dlowzzxx)
- Kaan Γelebi (@kaanisthatyou)
- MRUNAL CHAUDHARI (@mccmrunal)
- Martsin Lazouski (@ML642)
- Muneeb Anjum (@horizonbymuneeb)
- Nikolas Sapalidis (@nikolas-sapa)
- Parman Mohammadalizadeh (@MannXo)
- Plone Mraz (@PloneMraz)
- Vishnu Vardhan (@vishnuv688)
- Yasen Dudin (@yasenltd)
- @aayushisabharwal
- @bahrimootaz
- @goosewobbler
- dOR (@dor-sr)