Repository navigation
refactor!: remove the multi-remote WebdriverIO v9 fallbacks - #2265
Merged
dprevost-LMI merged 3 commits intoOct 6, 2026
Merged
dprevost-LMI merged 3 commits into
dprevost-LMI merged 3 commits into
Conversation
dprevost-LMI
force-pushed
the
v8/remove-multi-remote-fallbacks
branch
2 times, most recently
from
September 28, 2026 03:03
d17e416 to
f445214
Compare
WebdriverIO v10 sets only `isMultiRemote`, and its `getInstance()` throws for an unknown name and is typed `WebdriverIO.Browser`. So `hasMultiRemoteFlag()` stops reading the v9 `isMultiremote`, and the `!` and `|| undefined` after `getInstance()` go. The unit test mocks now model WebdriverIO 10.0.0: instances are only reachable with `getInstance()` (not as `browser.chrome` properties), an unknown name throws the v10 error, and `select()` throws when no name is valid. BREAKING CHANGE: the v9 `isMultiremote` flag is no longer read. Refs webdriverio#2255 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dprevost-LMI
force-pushed
the
v8/remove-multi-remote-fallbacks
branch
from
October 6, 2026 00:09
f445214 to
3a277e6
Compare
`hasMultiRemoteFlag()` read two flag names to support WebdriverIO v9 and v10. It now reads only `isMultiRemote`, so the type guard is not needed: optional chaining gives the same result for `null`, `undefined` and primitives. The function stays, to keep in one place why the flag is read without `in` (the `@wdio/globals` Proxy has only a `get` trap). Refs webdriverio#2255 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dprevost-LMI
marked this pull request as ready for review
October 6, 2026 00:13
Contributor
|
The test page changes 2 seconds after it loads: for example, it sets `#selectbox` from 2 to 3. On CI, the first visual test is slow, so its baseline showed 3, and the next test compared a screenshot that showed 2 (Firefox, 0.001% on Linux, 0.002% on Windows). The tests now wait for `.lateElem`, which the same timer adds. A pause of 2.5 seconds in the first test reproduces the failure locally, and the wait fixes it. On Windows, Firefox also drew some text edges differently between two page loads (39 pixels in the CI images), so the comparison ignores anti-aliasing. The two tests where one browser differs still fail as expected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed changes
MultiRemoteElementArrayfrom multi-remote$$()and sets onlyisMultiRemote: the refetch from the globalmultiRemoteBrowser, the empty plain-array cases and theisMultiremotecheck go.WDIO_ENABLE_MULTI_REMOTE_ELEMENT_ARRAYandWDIO_ENABLE_MULTI_REMOTE_SELECTare removed from docs.browser.<instanceName>, v10 error text.getInstance()keeps its!: on thev10branch it still returnsBrowser | undefined(fix: MultiRemote getInstance now throws instead of returning undefined webdriverio#15704 landed onmainonly). ElementgetInstance()throws, so|| undefinedgoes.Draft: merge only after the expect-webdriverio pre-release works in WebdriverIO v10, since this drops v9 support.
Not in this PR:
$$()types (types/*.d.ts) keepMultiRemoteElement[]until the v10 types are installed ([v8] Require WebdriverIO v10 and Node.js 22.19, and release v8 together with WebdriverIO v10 #2246).docs/Migrations.mdentry: added after feat!: remove the APIs deprecated for v8 #2264 creates the v8 section.Refs #2255
How you tested
npx vitest --run --coverage.enabled=false: 2596 passed. The flag on/off runs are gone with the flag.npx tsc --noEmit -p .,npm run test:types,npx eslint src test, multi-remote naming check,git grep WDIO_ENABLE_MULTI_REMOTE(no match)playgrounds/multi-remote-mochaagainst WebdriverIO v10, not on npm yet🤖 Generated with Claude Code