Skip to content

WebdriverIO 10 (replaces #416-#419) - #422

Merged
Nawid3333 merged 7 commits into
mainfrom
chore/wdio-10
Oct 11, 2026
Merged

Nawid3333 merged 7 commits into
mainfrom
chore/wdio-10

Conversation

@Nawid3333

@Nawid3333 Nawid3333 commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

WebdriverIO 9.32 -> 10.0.0 for the whole e2e setup, in place of Dependabot's #416-#419: the packages only work at the same version, so each of those was red alone.

What 10 needed:

  • executeAsync is gone. 101 calls in 47 files became browser.execute((args) => new Promise((done) => BODY)) by a codemod (bodies untouched); the helpers that forward a callback (inChrome, extension pages) send a script that wraps it in a promise. Four calls main added since were converted the same way.
  • switchFrame is gone for WebDriver BiDi sessions (the playback, extension and live suites); 10 wants browsing-context objects (browser.url() then .frame()). The specs switch into the player's frames ~50 times, with shared helpers that run in whatever frame is current, so tests/e2e/switchFrame.mjs puts back what 9 did for an element or null: the frame's browsing context (from the iframe's contentWindow) becomes WebdriverIO's current context, and WebDriver classic's switchToFrame follows for classic commands. Classic sessions (classic, private-browsing suites) keep WebdriverIO's own switchFrame. webdriverio is now a direct dev dependency (for getContextManager), in Dependabot's wdio group.
  • $() is strict: a selector that matches two elements is an error. One place did (the dialogs spec hovered the first of two toasts); it now takes the first explicitly. Strict selectors stay on.

Local runs: lint, tsc, vitest 2235; e2e: the 12 extension specs that failed here (save-flow, player-peers-bfcache, source-length, save-transport, save-dialog-regression, same-video-file, page-subtitles, iframe-redirect, framed-player, firefox-vpn, embed-page-query, keybinds-storage) and dialogs, sources-browser-ui, ram-budget: all pass.

Merge from 2026-10-12 (10.0.0 was published 2026-10-05; 7-day rule). Then Dependabot closes #416-#419 by itself.

🤖 Generated with Claude Code

Nawid3333 and others added 3 commits October 10, 2026 20:19
The packages only work at the same version, so all five move together to ^10.0.0.
v10 removed browser.executeAsync: 101 calls in 47 e2e files become
browser.execute((args) => new Promise((done) => BODY)) by a codemod (bodies
untouched; an async callback's body runs in (async () => BODY)()), and the two
helpers that forward a callback (inChrome, extension pages) send a script string
that wraps it in a promise, which execute() awaits over BiDi and classic alike
(read in webdriverio 10.0.0's execute()).

Locally under 10.0.0: web (keybinds, player-controls, ram-budget, firefox: 72),
classic (content-overlays, auto-enable-list: 11) and private windows (8) pass.

Left: v10 also removed switchFrame for BiDi sessions (35 calls in 11 ext specs):
frames go through the browsing context browser.url()/newWindow() returns
(.frame()). And by the 7-day rule its versions are ready from 2026-10-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, strict $() in dialogs, the executeAsync calls main added since

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Nawid3333 Nawid3333 changed the title WIP: WebdriverIO 10 (replaces #416-#419) WebdriverIO 10 (replaces #416-#419); merge from 2026-10-12 Oct 10, 2026
…1.3x on a slow Linux runner)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Nawid3333
Nawid3333 marked this pull request as ready for review October 11, 2026 15:41
@Nawid3333 Nawid3333 changed the title WebdriverIO 10 (replaces #416-#419); merge from 2026-10-12 WebdriverIO 10 (replaces #416-#419) Oct 11, 2026
@Nawid3333
Nawid3333 merged commit 3dfcf47 into main Oct 11, 2026
36 checks passed
@Nawid3333
Nawid3333 deleted the chore/wdio-10 branch October 11, 2026 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant