Skip to content

playwright

v1.65.1
microsoft/playwright

Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.

Version of microsoft/playwright you run

CompareView on GitHub

Breaking changes

What to check before upgrading, taken from the notes of the last 30 releases.

  • v1.65.0Nov 5, 2026
    • ## Notable Changes ⚠️
    • ⚠️ Playwright no longer tests on Node.js 20. Use Node.js 22, 24 or 26, as listed in the system requirements.
  • v1.64.0Oct 7, 2026

    Breaking changes ⚠️

    • screen property is now forwarded from the device descriptors. If you use ...devices['Desktop Chrome'] and alike, window.screen and media queries now see the emulated screen size. You can opt-out by explicitly setting screen to undefined:
      // playwright.config.ts
      export default defineConfig({
        use: {
          ...devices['Desktop Chrome'],
          screen: undefined,
        },
      });
    
    • JSX in your test files now follows your tsconfig.json. Playwright compiles JSX in test files according to the jsx, jsxFactory, jsxFragmentFactory and jsxImportSource tsconfig options, and defaults to the automatic runtime from react/jsx-runtime.
    • --update-snapshots=missing now passes the test run. Tests that only create missing snapshots now pass in the 'missing' mode of testConfig.updateSnapshots, so that CI can generate new snapshots and verify the existing ones in a single run. The mode used when the option is not specified is now called 'default' and behaves as before: missing snapshots are written and the test fails.
    • Elements inside hidden iframes are considered hidden. Elements inside an iframe that is not visible, for example with visibility: hidden, are now considered hidden by actions, locator.isVisible() and expect(locator).toBeVisible().
  • v1.63.0Sep 4, 2026
    • ⚠️ The experimental @playwright/experimental-ct-react, @playwright/experimental-ct-react17 and @playwright/experimental-ct-vue packages will no longer be updated. Follow the migration guide to move to the stories model introduced in 1.62. Story ids passed to fixtures.mount() can now be typed through the generated Stories registry.
    • ⚠️ Ubuntu 20.04 is not supported anymore.
  • v1.62.0Jul 24, 2026
    • ⚠️ Debian 11 is not supported anymore.
  • v1.60.0May 11, 2026

    Breaking Changes ⚠️

    • Removed long-deprecated APIs:
    • Locator.ariaRef() — use the standard locator.ariaSnapshot() pipeline.
    • handle option on BrowserContext.exposeBinding and Page.exposeBinding.
    • logger option on BrowserType.connect and BrowserType.connectOverCDP — use tracing instead.
    • Context options videosPath / videoSize — use recordVideo instead.
  • v1.59.0Apr 1, 2026
    • ## Known Issues ⚠️⚠️

    Breaking Changes ⚠️

    • Removed macOS 14 support for WebKit. We recommend upgrading your macOS version, or keeping an older Playwright version.
    • Removed @playwright/experimental-ct-svelte package.
    • junit test reporter now differentiates between types of errors, so some of the previous `s are now reported as `s.
  • v1.58.0Jan 23, 2026

    Breaking Changes ⚠️

    • Removed _react and _vue selectors. See locators guide for alternatives.
    • Removed :light selector engine suffix. Use standard CSS selectors instead.
    • Option devtools from browserType.launch() has been removed. Use args: ['--auto-open-devtools-for-tabs'] instead.
    • Removed macOS 13 support for WebKit. We recommend to upgrade your macOS version, or keep using an older Playwright version.
  • v1.57.0Nov 25, 2025

    Breaking Change

    After 3 years of being deprecated, we removed Page#accessibility from our API. Please use other libraries such as Axe if you need to test page accessibility. See our Node.js guide for integration with Axe.

Release history

All releases on GitHub
BadgeLatest version of microsoft/playwright[![version](/badge/microsoft/playwright)](/p/microsoft/playwright)

Bug Fixes

  • #43936 [Regression]: decorated class with a static field fails to load in 1.65 ("_initClass is not a function") with useDefineForClassFields: false
  • #43934 [Bug]: Test locations are one column off under Bun 1.4.4+

Browser Versions

  • Chromium 159.0.8154.6
  • Mozilla Firefox 159.0
  • WebKit 27.2

Full release notesCompare with previous