Skip to content

Releases: microsoft/playwright-python

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

v1.32.1

29 Mar 17:36
d6b4c1a
Compare
Choose a tag to compare

Bugfixes

  • [BUG]: fix: discard trace without path did not work in #1836

v1.32.0

27 Mar 20:44
7e2ac74
Compare
Choose a tag to compare

v1.32.0

New APIs

Browser Versions

  • Chromium 112.0.5615.29
  • Mozilla Firefox 111.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 111
  • Microsoft Edge 111

v1.31.1

27 Feb 17:52
ebf9ed4
Compare
Choose a tag to compare

Highlights

microsoft/playwright#21093 - [Regression v1.31] Headless Windows shows cascading cmd windows

Browser Versions

  • Chromium 111.0.5563.19
  • Mozilla Firefox 109.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 110
  • Microsoft Edge 110

v1.31.0

21 Feb 22:45
Compare
Choose a tag to compare

New APIs

  • New assertion expect(locator).to_be_in_viewport() ensures that locator points to an element that intersects viewport, according to the intersection observer API.

    from playwright.sync_api import expect
    
    locator = page.get_by_role("button")
    
    # Make sure at least some part of element intersects viewport.
    expect(locator).to_be_in_viewport()
    
    # Make sure element is fully outside of viewport.
    expect(locator).not_to_be_in_viewport()
    
    # Make sure that at least half of the element intersects viewport.
    expect(locator).to_be_in_viewport(ratio=0.5)

Miscellaneous

  • DOM snapshots in trace viewer can be now opened in a separate window.
  • New option max_redirects for method Route.fetch.
  • Playwright now supports Debian 11 arm64.

Browser Versions

  • Chromium 111.0.5563.19
  • Mozilla Firefox 109.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 110
  • Microsoft Edge 110

v1.30.0

25 Jan 16:29
Compare
Choose a tag to compare

🎉 Happy New Year 🎉

Maintenance release with bugfixes and new browsers only.

Browser Versions

  • Chromium 110.0.5481.38
  • Mozilla Firefox 108.0.2
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 109
  • Microsoft Edge 109

v1.29.1

04 Jan 14:34
7d646d0
Compare
Choose a tag to compare

Bugfixes

  • fix: fulfill with json in #1701

v1.29.0

21 Dec 23:49
af2a06b
Compare
Choose a tag to compare

Highlights

New APIs

  • New method Route.fetch and new option json for Route.fulfill:

    def handle_route(route: Route):
      # Fetch original settings.
      response = route.fetch()
      # Force settings theme to a predefined value.
      json = response.json()
      json["theme"] = "Solorized"
      # Fulfill with modified data.
      route.fulfill(json=json)
    page.route("**/api/settings", handle_route)
  • New method Locator.all to iterate over all matching elements:

    # Check all checkboxes!
    checkboxes = page.get_by_role("checkbox")
    for checkbox in checkboxes.all():
      checkbox.check()
  • Locator.select_option matches now by value or label:

    <select multiple>
      <option value="red">Red</div>
      <option value="green">Green</div>
      <option value="blue">Blue</div>
    </select>
    element.select_option("Red")

Miscellaneous

Browser Versions

  • Chromium 109.0.5414.46
  • Mozilla Firefox 107.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 108
  • Microsoft Edge 108

v1.28.0

16 Nov 22:15
e25107b
Compare
Choose a tag to compare

Highlights

Playwright Tools

  • Live Locators in CodeGen. Generate a locator for any element on the page using "Explore" tool.

Locator Explorer

New APIs

Browser Versions

  • Chromium 108.0.5359.29
  • Mozilla Firefox 106.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 107
  • Microsoft Edge 107

v1.27.1

12 Oct 17:18
2b4e1ef
Compare
Choose a tag to compare

Highlights

This patch release includes the following bug fixes:

microsoft/playwright#18010 - fix(generator): generate nice locators for arbitrary selectors
microsoft/playwright#17952 - fix: fix typo in treeitem role typing

Browser Versions

  • Chromium 107.0.5304.18
  • Mozilla Firefox 105.0.1
  • WebKit 16.0

This version was also tested against the following stable channels:

  • Google Chrome 106
  • Microsoft Edge 106