# webdriverio v9.31.0 - Product: webdriverio (https://whatsnew.fyi/product/webdriverio) - Vendor: webdriverio - Date: 2026-08-18 - Version: v9.31.0 - Original notes: https://github.com/webdriverio/webdriverio/releases/tag/v9.31.0 - Permalink: https://whatsnew.fyi/product/webdriverio/releases/v9.31.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Support multi-element $$() in Expect - **fixed** — Keep an undefined element that passes filter in wdio-utils - **fixed** — Respect WEBDRIVER_CACHE_DIR during driver setup - **fixed** — Retry requests aborted by connectionRetryTimeout - **added** — Support TypeScript files in CLI REPL - **fixed** — Reset current context when browsing context is destroyed - **fixed** — Scroll by deltaX/deltaY in scrollIntoView wheel action - **fixed** — Guard ShadowRootManager preload script against partial-Bidi remotes - **fixed** — Compose element command overrides - **fixed** — Don't collapse Windows paths to drive letter in Allure reporter toPackageLabel #### ⚠️ Partially failed release. Please use [v9.31.1](https://github.com/webdriverio/webdriverio/releases/tag/v9.31.1) instead. ##### v9.31.0 (2026-08-18) ###### :rocket: New Feature * `eslint-plugin-wdio`, `wdio-browser-runner`, `wdio-globals`, `wdio-jasmine-framework`, `wdio-local-runner`, `wdio-runner` * [#15471](https://github.com/webdriverio/webdriverio/pull/15471) feat: Expect's multi-element `$$()` support ([@dprevost-LMI](https://github.com/dprevost-LMI)) ###### :bug: Bug Fix * `wdio-utils` * [#15480](https://github.com/webdriverio/webdriverio/pull/15480) fix(@wdio/utils): keep an undefined element that passes filter ([@luantaraschi](https://github.com/luantaraschi)) * `wdio-utils`, `webdriver` * [#15488](https://github.com/webdriverio/webdriverio/pull/15488) fix: respect WEBDRIVER_CACHE_DIR during driver setup ([@shixi-li](https://github.com/shixi-li)) * `webdriver` * [#15504](https://github.com/webdriverio/webdriverio/pull/15504) fix(webdriver): retry requests aborted by connectionRetryTimeout ([@birtles](https://github.com/birtles)) * `wdio-cli` * [#15474](https://github.com/webdriverio/webdriverio/pull/15474) feat(cli/repl): support TS files ([@Delta456](https://github.com/Delta456)) * `wdio-browser-runner`, `webdriverio` * [#15468](https://github.com/webdriverio/webdriverio/pull/15468) chore(pnpm): fix failing pnpm tests ([@Delta456](https://github.com/Delta456)) * `webdriverio` * [#15477](https://github.com/webdriverio/webdriverio/pull/15477) fix(webdriverio): reset current context when browsing context is destroyed ([@Badisi](https://github.com/Badisi)) * [#15473](https://github.com/webdriverio/webdriverio/pull/15473) fix(webdriverio): scroll by deltaX/deltaY in scrollIntoView wheel action ([@wswebcreation](https://github.com/wswebcreation)) * [#15350](https://github.com/webdriverio/webdriverio/pull/15350) fix(webdriverio): guard ShadowRootManager preload script against partial-Bidi remotes ([@navin772](https://github.com/navin772)) * `wdio-utils`, `webdriverio` * [#15493](https://github.com/webdriverio/webdriverio/pull/15493) fix(wdio-utils): compose element command overrides ([@KuznetsovRoman](https://github.com/KuznetsovRoman)) * `wdio-allure-reporter` * [#15502](https://github.com/webdriverio/webdriverio/pull/15502) fix(allure-reporter): don't collapse Windows paths to drive letter in toPackageLabel ([@mccmrunal](https://github.com/mccmrunal)) * Other * [#15463](https://github.com/webdriverio/webdriverio/pull/15463) Fix/win pnpm spawn enoent ([@mccmrunal](https://github.com/mccmrunal)) ###### :memo: Documentation * Other * [#15492](https://github.com/webdriverio/webdriverio/pull/15492) docs(website): publish a machine-readable surface and un-hide the flowcharts ([@AutomatedTester](https://github.com/AutomatedTester)) * [#15489](https://github.com/webdriverio/webdriverio/pull/15489) doc: A11y documentation update ([@vishnuv688](https://github.com/vishnuv688)) * `webdriverio` * [#15490](https://github.com/webdriverio/webdriverio/pull/15490) docs: make generated API command pages machine-readable ([@AutomatedTester](https://github.com/AutomatedTester)) * [#15491](https://github.com/webdriverio/webdriverio/pull/15491) docs: fix API doc generator output for machine extraction ([@AutomatedTester](https://github.com/AutomatedTester)) * `wdio-appium-service` * [#15501](https://github.com/webdriverio/webdriverio/pull/15501) docs(appium-service): document appiumStartTimeout option ([@wswebcreation](https://github.com/wswebcreation)) ###### :house: Internal * [#15503](https://github.com/webdriverio/webdriverio/pull/15503) ci: Force `'no-sandbox'` on macOS fixing `Failed to create a session` for Chromiun ([@dprevost-LMI](https://github.com/dprevost-LMI)) * [#15484](https://github.com/webdriverio/webdriverio/pull/15484) ci: fix alpine e2e issue by freezing pnpm to 10 ([@dprevost-LMI](https://github.com/dprevost-LMI)) * [#15463](https://git _[Truncated at 4000 characters — full notes: https://github.com/webdriverio/webdriverio/releases/tag/v9.31.0]_