Require playwright-core 1.62+, where asLocator now lives - #131
Merged
Conversation
DenysKuchma
approved these changes
Aug 21, 2026
Playwright 1.62 dropped lib/utils from playwright-core and moved the isomorphic helpers into lib/coreBundle, exported as ./lib/coreBundle with asLocator under the iso namespace. The recorder still required playwright-core/lib/utils, so it threw PLAYWRIGHT_INCOMPATIBLE and every renderCall test failed. package.json asked for playwright ^1.62 but never for playwright-core, so the copy at the root of the tree was whatever satisfied @axe-core/playwright's playwright-core >= 1.0.0 peer. A fresh install deduped it to 1.62.1 and CI went red, while a tree still holding an older copy resolved lib/utils and passed — which is why this never showed up locally. playwright-core ^1.62 is now a direct dependency, so the root copy is the one the recorder is written against, and getAsLocator reads iso.asLocator from lib/coreBundle and nothing else. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
DavertMik
force-pushed
the
fix/playwright-162-aslocator
branch
from
August 22, 2026 00:25
16ac75f to
687ae50
Compare
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.
main, #129 and #130 all fail the same twelverenderCalltests. None of them caused it.Cause
Playwright 1.62 dropped
lib/utilsfromplaywright-coreand moved the isomorphic helpers intolib/coreBundle, which the package publicly exports:asLocatornow lives there underiso. The recorder still requiredplaywright-core/lib/utils.package.jsonasked forplaywright ^1.62but never forplaywright-core, so the copy at the root of the tree was whatever satisfied@axe-core/playwright'splaywright-core >= 1.0.0peer. A fresh install dedupes it to 1.62.1 and CI goes red; a tree still holding an older copy resolveslib/utilsand passes. That is the whole CI-vs-local split, and it made the break invisible during development.Change
package.json—playwright-core: ^1.62as a direct dependency, so the root copy is the one the recorder is written against.src/playwright-recorder.ts—getAsLocator()readsiso.asLocatorfromlib/coreBundle. One entry point, no version ladder.Explorbot supports Playwright 1.62+.
Verification
With
playwright-core@1.62.1now at the root, the local tree is the same one CI builds — no simulation involved:bun test tests/unit/1022 pass ·bun test tests/integration/80 pass, 1 skip (live-session test) · lint clean · format clean ·build:npmok.The twelve
renderCalltests are the regression guard — they fail the momentasLocatorcannot be reached.Merging this turns #129 and #130 green too.
🤖 Generated with Claude Code