v9.32.0 (2026-09-20)
๐ New Feature
wdio-cli,wdio-runner,wdio-types,wdio-utils- #15092 feat(profiling): add support for cpu and heap profiling (@mccmrunal)
webdriverio- #15614 feat(webdriverio): add acceptDialog and dismissDialog for mobile permission dialogs (@christian-bromann)
create-wdio- #15528 feat(create-wdio): add Dioxus service to the project creation wizard and docs (@goosewobbler)
๐ Bug Fix
webdriverio- #15632 fix(webdriverio): make addLocatorStrategy work on multi-remote browsers (@nikolas-sapa)
- #15637 fix(webdriverio): keep a valid top-level context on switchToParentFrame (@PloneMraz)
- #15638 fix(webdriverio): release the session-manager registration on removeListeners (@PloneMraz)
- #15073 fix: resolve mock state error and race condition (#15072) (@mccmrunal)
- #15089 fix(webdriverio): correctly use navigation ID for networkIdle wait (@mccmrunal)
- #15621 fix(webdriverio): avoid retaining closed browser instances (@ML642)
- #15624 fix(webdriverio): let switchToParentFrame recover a destroyed context (@PloneMraz)
- #15615 fix(webdriverio): use BiDi accessibility locator for aria selectors (@christian-bromann)
- #15627 fix(webdriverio): re-throw original stale element error when refetch fails (@nikolas-sapa)
- #15629 fix(webdriverio): apply throttleNetwork conditions to service workers (@nikolas-sapa)
- #15613 fix(webdriverio): handle dynamic function payloads in mock.respond (@christian-bromann)
- #15574 fix(webdriverio): honor getHTML exclusion options (@lucasmariano003-wq)
- #15573 fix(webdriverio): recover owning window after nested frame destruction (@lucasmariano003-wq)
- #15607 fix(webdriverio): allow URLPattern as browser.mock url (@Yash121l)
- #15575 fix(webdriverio): retain detached-first shadow hosts (@lucasmariano003-wq)
- Other
- #15639 fix(webdriverio): preserve original stale-element error when refetch fails (Closes #15550) (@nikolas-sapa)
- #15126 fix(wdio-protocols): map getActiveElement return type to ElementReferโฆ (@mccmrunal)
wdio-junit-reporter- #15616 fix(junit-reporter): uniquely associate Jasmine filename-only suites (@christian-bromann)
wdio-sumologic-reporterwdio-utils- #15619 fix(wdio-utils): settle some and every on all-hole arrays (@devangpratap)
- #15625 fix(utils): clean up incomplete driver cache dir before retrying install (@nikolas-sapa)
- #15577 fix(wdio-utils): preserve sparse array length in async map (@ML642)
- #15596 fix(utils): encode custom plugin file URLs (@ML642)
wdio-browser-runnerwdio-allure-reporter,wdio-utils- #15610 fix(wdio-allure-reporter): stabilize Allure historyId across browser versions (@christian-bromann)
create-wdio- #15612 fix(create-wdio): generate tsconfig without overwriting or breaking root extends (@christian-bromann)
webdriver- #15611 fix(webdriver): enable followRedirects for BiDi connections (@christian-bromann)
wdio-lighthouse-service,wdio-runner,webdriveriowdio-allure-reporter- #15094 fix(allure-reporter): classify AssertionError by error name property (@mcwanza)
- #15551 fix(wdio-allure-reporter): write results incrementally instead of only at runner end (@devangpratap)
wdio-cli,wdio-local-runner,wdio-types- #15595 fix(@wdio/local-runner): report a non-zero exit code for signal terminated workers (@nikolas-sapa)
๐ Polish
wdio-utils- #15609 fix(utils): include execution context in timeout errors (@lucasmariano003-wq)
๐ Documentation
- Other
- #15642 fix(webdriverio): fix AI assistant reset button overlap with scrollbar (@sh011)
- #15542 docs: add RobotActions to the cloud services page (@krishtoautomate)
wdio-browser-runner,wdio-utils- #15074 docs: clarify component testing coverage setup (@mccmrunal)
webdriverio- #15601 docs(webdriverio): add iterating over elements section to $$ (@devangpratap)
๐ Internal
- Other
- #15636 ci: skip unrelated suites and shrink the PR test matrix (@christian-bromann)
webdriverio
Committers: 17
- Cesar Montoya (@mcwanza)
- Changsu Seong (@scs0209)
- Christian Bromann (@christian-bromann)
- David Prevost (@dprevost-LMI)
- Jack VanSickle (@jackvansickle1)
- Krish Pavuluri (@krishtoautomate)
- MRUNAL CHAUDHARI (@mccmrunal)
- Martsin Lazouski (@ML642)
- Nikolas Sapalidis (@nikolas-sapa)
- Plone Mraz (@PloneMraz)
- Shrey Shekhar (@sh011)
- Sri Harsha (@harsha509)
- Yash Lunawat (@Yash121l)
- @devangpratap
- @goosewobbler
- @la122
- @lucasmariano003-wq