Skip to content

Update Playwright driver to 1.63.0 - #395

Merged
YusukeIwaki merged 4 commits into
mainfrom
driver/1.63.0
Sep 11, 2026
Merged

YusukeIwaki merged 4 commits into
mainfrom
driver/1.63.0

Conversation

@YusukeIwaki

@YusukeIwaki YusukeIwaki commented Sep 7, 2026 •

Copy link
Copy Markdown
Owner

Upgrade the compatible Playwright driver and Ruby gem to 1.63.0. Add HTTP credential arrays while preserving credentials Hashes, dialogclosed, selectorless frame locators, Locator#visible, action ARIA/screen snapshots, and OPFS storage state. Separate context API-request tracing/HAR and recover from failed HAR/trace saves, including valid Ruby stack metadata. Update CI versions and regenerate the API, documentation, signatures, and examples.

Page#frame_locator and Frame#frame_locator keep the selector as an optional positional argument (selector = nil), preserving existing calls while allowing it to be omitted to search across frames. The generator handles these arguments with OptionalPositionalArg and generates matching wrappers, documentation, and RBS signatures.

Closes #394.

The committed upgrade review contains the ordered review of 58 upstream PRs, additional driver-regression decisions, and the implementation/test mapping. Tests are based on the final v1.63.0 sources. Pre-existing gaps (APIRequestContext#storage_state and Android swipe), JS-only APIs, and reverted features remain outside this upgrade.

Validation on macOS/Ruby 4.0.0, through rbenv exec bundle exec rspec:

  • Current optional positional-selector API (2026-09-11): frame-locator, any-frame, ARIA, and affected example tests on Chromium: 97 examples, 0 failures, 1 existing pending case. WebKit: 97 examples, 1 failure, 1 existing pending case; should support contentFrame timed out in page.goto before calling frame_locator. Its immediate DEBUG=1 rerun passed (1 example, 0 failures), including the any-frame content-frame assertion. Both positional selectors and omitted selectors are covered.
  • Initial upgrade validation: Chromium full suite had 1,234 examples, 2 failures, 31 pending. Both class-assertion message expectations were updated after DEBUG reproduction; all five class-assertion cases plus the persistent-context credentials test then passed. WebKit affected suites passed (203 examples, 0 failures, 19 pending), as did remote Chromium API/examples (17 examples) and tracing recovery (6 examples, 1 local-only pending case). Detailed supplemental checks are recorded in the review note. The full suite was not repeated after restoring optional positional selectors; the affected suites above were rerun.
  • Final generation reproduced identical wrappers, RBS, API/docs, and unimplemented-example output. No new unimplemented examples remain. Changed implementations and example code parse with Ruby 2.4 grammar. git diff --check passed.

Firefox smoke checks could not reach test execution: r1543 reports Could not find profile folder, also reproduced with the upstream Node client. Firefox behavior and the full CI Ruby-version matrix remain unverified locally.

@vercel

vercel Bot commented Sep 7, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
playwright-ruby-client Ignored Ignored Preview Sep 11, 2026 5:33am UTC

@YusukeIwaki
YusukeIwaki merged commit 9f7af11 into main Sep 11, 2026
28 of 29 checks passed
@YusukeIwaki
YusukeIwaki deleted the driver/1.63.0 branch September 11, 2026 06: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.

[Ports]: Backport client side changes for 1.63

1 participant