Skip to content

Releases: microsoft/playwright-python

v1.41.1

24 Jan 23:07
2b39066
Compare
Choose a tag to compare

Highlights

microsoft/playwright#29067 - [REGRESSION] Codegen/Recorder: not all clicks are being actioned nor recorded
microsoft/playwright#29019 - [REGRESSION] trace.playwright.dev does not currently support the loading from URL

Browser Versions

  • Chromium 121.0.6167.57
  • Mozilla Firefox 121.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 120
  • Microsoft Edge 120

v1.41.0

16 Jan 21:18
6e586ed
Compare
Choose a tag to compare

New APIs

Browser Versions

  • Chromium 121.0.6167.57
  • Mozilla Firefox 121.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 120
  • Microsoft Edge 120

v1.40.0

21 Nov 21:03
8705b35
Compare
Choose a tag to compare

Test Generator Update

Playwright Test Generator

New tools to generate assertions:

Here is an example of a generated test with assertions:

from playwright.sync_api import Page, expect

def test_example(page: Page) -> None:
    page.goto("https://playwright.dev/")
    page.get_by_role("link", name="Get started").click()
    expect(page.get_by_label("Breadcrumbs").get_by_role("list")).to_contain_text("Installation")
    expect(page.get_by_label("Search")).to_be_visible()
    page.get_by_label("Search").click()
    page.get_by_placeholder("Search docs").fill("locator")
    expect(page.get_by_placeholder("Search docs")).to_have_value("locator");

New APIs

Other Changes

  • Method download.path() throws an error for failed and cancelled downloads.

Browser Versions

  • Chromium 120.0.6099.28
  • Mozilla Firefox 119.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 119
  • Microsoft Edge 119

v1.39.0

17 Oct 19:39
59369fe
Compare
Choose a tag to compare

Features

Python 3.12 support.

Browser Versions

  • Chromium 119.0.6045.9
  • Mozilla Firefox 118.0.1
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 118
  • Microsoft Edge 118

v1.38.0

18 Sep 22:10
f1c44c1
Compare
Choose a tag to compare

Trace Viewer Updates

Playwright Trace Viewer

  1. Zoom into time range.
  2. Network panel redesign.

New APIs

Deprecations

Browser Versions

  • Chromium 117.0.5938.62
  • Mozilla Firefox 117.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 116
  • Microsoft Edge 116

v1.37.0

14 Aug 17:40
42c0bf1
Compare
Choose a tag to compare

Highlights

  • New --full-page-screenshot command line flag allows taking a
    full page screenshot on failure.

  • It is now possible to override the context options for a single test by using the browser_context_args marker.

  • pytest-playwright is now also getting published on Anaconda

📚 Debian 12 Bookworm Support

Playwright now supports Debian 12 Bookworm on both x86_64 and arm64 for Chromium, Firefox and WebKit.
Let us know if you encounter any issues!

Linux support looks like this:

Ubuntu 20.04 Ubuntu 22.04 Debian 11 Debian 12
Chromium
WebKit
Firefox

Browser Versions

  • Chromium 116.0.5845.82
  • Mozilla Firefox 115.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 115
  • Microsoft Edge 115

v1.36.0

14 Jul 20:38
42a3db2
Compare
Choose a tag to compare

Highlights

🏝️ Summer maintenance release.

Browser Versions

  • Chromium 115.0.5790.75
  • Mozilla Firefox 115.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 114
  • Microsoft Edge 114

v1.35.0

13 Jun 07:37
f1c11fb
Compare
Choose a tag to compare

Highlights

  • New option mask_color for methods Page.screenshot() and Locator.screenshot() to change default masking color.

  • New uninstall CLI command to uninstall browser binaries:

    $ playwright uninstall # remove browsers installed by this installation
    $ playwright uninstall --all # remove all ever-install Playwright browsers

Browser Versions

  • Chromium 115.0.5790.13
  • Mozilla Firefox 113.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 114
  • Microsoft Edge 114

v1.34.0

26 May 21:01
e6a7a37
Compare
Choose a tag to compare

Highlights

  • New Locator.and_ to create a locator that matches both locators.

    button = page.get_by_role("button").and_(page.get_by_title("Subscribe"))
  • Its now possible to set a global expect timeout and change the 5 second default:

    from playwright.sync_api import expect
    
    expect.set_options(timeout=10_000)
  • New events BrowserContext.on("console") and BrowserContext.on("dialog") to subscribe to any dialogs
    and console messages from any page from the given browser context. Use the new properties ConsoleMessage.page
    and Dialog.page to pin-point event source.

Browser Versions

  • Chromium 114.0.5735.26
  • Mozilla Firefox 113.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 113
  • Microsoft Edge 113

v1.33.0

03 May 11:20
ebfc27e
Compare
Choose a tag to compare

Highlights

Locators Update

  • Use Locator.or_ to create a locator that matches either of the two locators.
    Consider a scenario where you'd like to click on a "New email" button, but sometimes a security settings dialog shows up instead.
    In this case, you can wait for either a "New email" button, or a dialog and act accordingly:

    new_email = page.get_by_role("button", name="New email")
    dialog = page.get_by_text("Confirm security settings")
    expect(new_email.or_(dialog)).is_visible()
    if (dialog.is_visible())
      page.get_by_role("button", name="Dismiss").click()
    new_email.click()
  • Use new options has_not and has_not_text in Locator.filter
    to find elements that do not match certain conditions.

    row_locator = page.locator("tr")
    row_locator
        .filter(has_not_text="text in column 1")
        .filter(has_not=page.get_by_role("button", name="column 2 button"))
        .screenshot()
  • Use new web-first assertion expect(locator).to_be_attached() to ensure that the element
    is present in the page's DOM. Do not confuse with the expect(locator).to_be_visible() that ensures that
    element is both attached & visible.

New APIs

⚠️ Breaking change

  • The mcr.microsoft.com/playwright/python:v1.33.0 now serves a Playwright image based on Ubuntu Jammy.
    To use the focal-based image, please use mcr.microsoft.com/playwright/python:v1.33.0-focal instead.

Browser Versions

  • Chromium 113.0.5672.53
  • Mozilla Firefox 112.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 112
  • Microsoft Edge 112