Releases: microsoft/playwright-python
v1.23.1
v1.23.0
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
- New method
method: LocatorAssertions.to_have_values
that asserts all selected values of<select multiple>
element. - Methods
method: LocatorAssertions.to_contain_text
andmethod: LocatorAssertions.to_have_text
now acceptignore_case
option.
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 forrecordHar
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
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 locatorbuttons = page.locator("role=button") # ... submit_button = buttons.filter(has_text="Submit") submit_button.click()
-
Codegen now supports generating Pytest Tests
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
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 inPage.screenshot
for smaller sized screenshots. -
New
caret
option inPage.screenshot
to control text caret. Defaults to"hide"
.
Behavior Changes
- The
mcr.microsoft.com/playwright
docker image no longer contains Python. Please usemcr.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
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
Highlights
- New options for methods
page.screenshot()
,locator.screenshot()
andelementHandle.screenshot()
:- Option
animations: "disabled"
rewinds all CSS animations and transitions to a consistent state - Option
mask: Locator[]
masks given elements, overlaying them with pink#FF00FF
boxes.
- Option
- Trace Viewer now shows API testing requests.
locator.highlight()
visually reveals element(s) for easier debugging.
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 javascriptmcr.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
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
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
- New
method: Locator.page
method: Page.screenshot
andmethod: Locator.screenshot
now automatically hides blinking caret- Playwright Codegen now generates locators and frame locators
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
v1.18.1
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