Skip to content

Releases: microsoft/playwright-python

v1.23.1

14 Jul 15:14
162afd7
Compare
Choose a tag to compare

Bug Fixes

  • [BUG] Frame is emitted on Page events domcontentloaded/load #1399
  • [Question]: Task was destroyed but it is pending! in route.abort() #1402

v1.23.0

30 Jun 23:51
0f0c735
Compare
Choose a tag to compare

Highlights

Network Replay

Now you can record network traffic into a HAR file and re-use this traffic in your tests.

To record network into HAR file:

npx playwright open --save-har=github.har.zip https://github.com/microsoft

Alternatively, you can record HAR programmatically:

context = browser.new_context(record_har_path="github.har.zip")
# ... do stuff ...
context.close()

Use the new methods method: Page.route_from_har or method: BrowserContext.route_from_har to serve matching responses from the HAR file:

context.route_from_har("github.har.zip")

Read more in our documentation.

Advanced Routing

You can now use method: Route.fallback to defer routing to other handlers.

Consider the following example:

# Remove a header from all requests
def remove_header_handler(route: Route) -> None:
    headers = route.request.all_headers()
    if "if-none-match" in headers:
        del headers["if-none-match"]
    route.fallback(headers=headers)

page.route("**/*", remove_header_handler)

# Abort all images
def abort_images_handler(route: Route) -> None:
    if route.request.resource_type == "image":
        route.abort()
    else:
        route.fallback()

page.route("**/*", abort_images_handler)

Note that the new methods method: Page.route_from_har or method: BrowserContext.route_from_har also participate in routing and could be deferred to.

Web-First Assertions Update

Miscellaneous

  • If there's a service worker that's in your way, you can now easily disable it with a new context option service_workers:

    context = browser.new_context(service_workers="block")
    page = context.new_page()
  • Using .zip path for recordHar context option automatically zips the resulting HAR:

    context = browser.new_context(record_har_path="github.har.zip")
  • If you intend to edit HAR by hand, consider using the "minimal" HAR recording mode
    that only records information that is essential for replaying:

    context = browser.new_context(record_har_mode="minimal", record_har_path="har.har")
  • Playwright now runs on Ubuntu 22 amd64 and Ubuntu 22 arm64.

v1.22.0

13 May 16:28
97c6490
Compare
Choose a tag to compare

Highlights

  • Role selectors that allow selecting elements by their ARIA role, ARIA attributes and accessible name.

    # Click a button with accessible name "log in"
    page.click("role=button[name='log in']")

    Read more in our documentation.

  • New [method: Locator.filter] API to filter an existing locator

    buttons = page.locator("role=button")
    # ...
    submit_button = buttons.filter(has_text="Submit")
    submit_button.click()
  • Codegen now supports generating Pytest Tests

    Graphics

Browser Versions

  • Chromium 102.0.5005.40
  • Mozilla Firefox 99.0.1
  • WebKit 15.4

This version was also tested against the following stable channels:

  • Google Chrome 101
  • Microsoft Edge 101

v1.21.0

13 Apr 20:11
dbb6cc6
Compare
Choose a tag to compare

Highlights

  • New experimental role selectors that allow selecting elements by their ARIA role, ARIA attributes and accessible name.

    # Click a button with accessible name "log in"
    page.click("role=button[name='log in']")

    To use role selectors, make sure to pass PLAYWRIGHT_EXPERIMENTAL_FEATURES=1 environment variable.

    Read more in our documentation.

  • New scale option in Page.screenshot for smaller sized screenshots.

  • New caret option in Page.screenshot to control text caret. Defaults to "hide".

Behavior Changes

  • The mcr.microsoft.com/playwright docker image no longer contains Python. Please use mcr.microsoft.com/playwright/python
    as a Playwright-ready docker image with pre-installed Python.
  • Playwright now supports large file uploads (100s of MBs) via Locator.set_input_files API.

Browser Versions

  • Chromium 101.0.4951.26
  • Mozilla Firefox 98.0.2
  • WebKit 15.4

This version was also tested against the following stable channels:

  • Google Chrome 100
  • Microsoft Edge 100

v1.20.1

23 Mar 22:04
702cb39
Compare
Choose a tag to compare

Highlights

This patch includes the following bug fixes:

microsoft/playwright#12711 - [REGRESSION] Page.screenshot hangs on some sites
microsoft/playwright#12807 - [BUG] Cookies get assigned before fulfilling a response
microsoft/playwright#12821 - [BUG] Chromium: Cannot click, element intercepts pointer events
microsoft/playwright#12887 - [BUG] Locator.count() with _vue selector with Repro
microsoft/playwright#12974 - [BUG] Regression - chromium browser closes during test or debugging session on macos

Browser Versions

  • Chromium 101.0.4921.0
  • Mozilla Firefox 97.0.1
  • WebKit 15.4

This version was also tested against the following stable channels:

  • Google Chrome 99
  • Microsoft Edge 99

v1.20.0

15 Mar 22:32
417a5b0
Compare
Choose a tag to compare

Highlights

Announcements

  • We now ship a designated Python docker image mcr.microsoft.com/playwright/python. Please switch over to it if you use
    Python. This is the last release that includes Python inside our javascript mcr.microsoft.com/playwright docker image.
  • v1.20 is the last release to receive WebKit update for macOS 10.15 Catalina. Please update MacOS to keep using latest & greatest WebKit!

Browser Versions

  • Chromium 101.0.4921.0
  • Mozilla Firefox 97.0.1
  • WebKit 15.4

This version was also tested against the following stable channels:

  • Google Chrome 99
  • Microsoft Edge 99

v1.19.1

25 Feb 13:15
d9c311c
Compare
Choose a tag to compare

Highlights

This patch includes the following bug fixes:

#1167 - [BUG] Task exception was never retrieved when continue_ race with page closed event
microsoft/playwright#12106 - [BUG] Error: EBUSY: resource busy or locked when using volumes in docker-compose with playwright 1.19.0 and mcr.microsoft.com/playwright:v1.15.0-focal
microsoft/playwright#12075 - [Question] After update to 1.19 firefox fails to run

Browser Versions

  • Chromium 100.0.4863.0
  • Mozilla Firefox 96.0.1
  • WebKit 15.4

This version was also tested against the following stable channels:

  • Google Chrome 98
  • Microsoft Edge 98

v1.19.0

15 Feb 21:47
54b4bdf
Compare
Choose a tag to compare

Version 1.19

Locator Updates

Locator now supports a has option that makes sure it contains another locator inside:

page.locator("article", has=page.locator(".highlight")).click()

The snippet above will select article that has highlight in it and will press the button in it.
Read more in locator documentation

Other Updates

Browser Versions

  • Chromium 100.0.4863.0
  • Mozilla Firefox 96.0.1
  • WebKit 15.4

This version was also tested against the following stable channels:

  • Google Chrome 98
  • Microsoft Edge 98

v1.18.2

01 Feb 15:39
480fe16
Compare
Choose a tag to compare

Highlights

This patch includes bug fixes for the following issues:

#1117 - [BUG] Fixing a pyee DeprecationWarning

Browser Versions

  • Chromium 99.0.4812.0
  • Mozilla Firefox 95.0
  • WebKit 15.4

This version was also tested against the following stable channels:

  • Google Chrome 97
  • Microsoft Edge 97

v1.18.1

20 Jan 12:13
767ee97
Compare
Choose a tag to compare

Highlights

This patch includes bug fixes for the following issues:

microsoft/playwright#11447 - [BUG] window.orientation on WebKit is different to what Safari gives you

Browser Versions

  • Chromium 99.0.4812.0
  • Mozilla Firefox 95.0
  • WebKit 15.4

This version was also tested against the following stable channels:

  • Google Chrome 97
  • Microsoft Edge 97