Releases: microsoft/playwright-python
v0.171.1
v0.171.0
v0.170.0
Highlights
- Support for Apple Silicon: Playwright browser binaries for WebKit and Chromium are now built for Apple Silicon.
- New browser storage API: Convenience APIs to store and restore browser state (cookies, local storage) to simplify automation scenarios with authentication.
- New! Java SDK: Playwright for Java is now on par with JavaScript, Python and C# bindings.
- New website: Playwright docs website at playwright.dev has been updated and is now built with Docusaurus.
- New CSS selectors: Playwright now uses a different implementation under the hood and introduced a few CSS extensions.
Browser Versions
- Chromium 89.0.4344.0
- Mozilla Firefox 84.0b9
- WebKit 14.1
New APIs
- new method [
browserContext.storageState()
] to get current state for later reuse storageState
option in [browser.newContext()
] and [browser.newPage()
] to setup browser context state
Issues Closed (56)
#647 - Other Browsers
#1129 - [Feature] Browser context serialization to support local storage
#1677 - [Internal] Run applicable tests for iframes and oopifs
#1960 - [BUG] Playwright in Storybook
#2274 - [Bug] running tests in parallel in Docker lead to page crashes
#2352 - [BUG] page.emulateMedia colorScheme has no effect in firefox without reload
#2360 - [BUG] Checkbox wont check unless force parameter is passed on
#2409 - [BUG] UnhandledPromiseRejectionWarning: Error: by Firefox and web kit.
#2415 - [BUG] Serviceworker shows wrong request.referrer in Playwright
#2425 - [Feature] Support Socks5 with auth
#2426 - [Question] How can we touch a button on screen ?
#2646 - [Question] Ci/Cd using AWS Codebuild/Codepipeline
#2698 - [BUG] Chromium headless on Windows does not launch without --disable-gpu
#2748 - [BUG] Chromium fails to connect in CI most of the times
#2761 - Playwright API v1: shortcomings
#2768 - [BUG] Click doesn't work properly if page is zoomed in
#3148 - [Question] Issue with launching Chromium in headful mode
#3152 - [BUG] Firefox multi page screenshots and focus ring
#3244 - [Question] Allow Multiple Downloads Notification
#3261 - [BUG] State of WebKit video codecs
#3284 - [BUG] MS Edge Chromium crashes on closing in headless mode
#3318 - [Feature] SSR on playwright.dev
#3337 - [REGRESSION]: NS_ERROR_FILE_ALREADY_EXISTS with Firefox sporadically
#3347 - [Feature] CSS.forcePseudoState
#3498 - [Question] How to manually download file (donwload dialog) ?
#3509 - [Question] Is it possible to set AlwaysOpenPdfExternally
#3552 - [Question] First-class test runner support
#3726 - [BUG] Playwright-core - page.waitForEvent: Timeout 30000ms exceeded
#3871 - [BUG] Always failed in CircleCI
#3901 - [Feature] APIs for getting values from the page
#3990 - [BUG] AvailWidth/Height
#4037 - [BUG] Edge does not report request payload
#4075 - [Question] Run headless Firefox with non-default executable path
#4112 - [Feature] pass args to new context
#4117 - I am trying to use a proxy in Webkit and when I redirect once it loses the proxy. What am I doing wrong?
#4124 - [BUG] page.click() is inconsistent in large webapp
#4203 - [BUG] Using a typescript version thats too old gives a bad error message
#4235 - [Question] How to fight web app (Salesforce) pausing due to window/tab not in focus
#4242 - [BUG] Helpful error message for lockfile
#4254 - [Question] Will node js be updated to 14 lts in docker image?
#4269 - [Feature] Export credential
#4297 - [BUG] Twitter timeout error on firefox
#4320 - [DevOps] GitHub Dependency graph does not work
#4345 - [Bug] Initial browser launch time inconsistent
#4381 - [Question] Is there an API endpoint to get the binary download URLs?
#4398 - [Question] wait until all of elements appear
#4432 - [Question] - Firefox.launch.Process failed to launch! No space left on device.
#4433 - [Types] Page.waitForResponse() urlOrPredicate use typed function
#4439 - [REGRESSION]: self signed certificate in certificate chain -> Error with installation
#4445 - [BUG] Unknown scheme for WebSocket.listenerCount
#4461 - [BUG] Error when using PM2 process manager in cluster mode
#4465 - [BUG] MS Edge Chromium cannot end msedge.exe processes in HEAD mode
#4467 - [BUG] Can't connect to running browserServer from another process
#4472 - [BUG] Crash when opening a new tab from UI
#4486 - [Question] chromium with head
#4487 - [BUG] Playwright not intercepting fetch requests in WebWorker
Commits (193)
e91eee84 - chore: cut v1.7.0 (#4705)
e6c206ed - chore: update PrintDeps.exe to r1004 (#4709)
c5bb08c5 - docs: remove outdated troubleshooting (#4706)
8d574a76 - docs: update docker readme
4799e8f2 - feat(adb): add screenshot (#4701)
1596b53d - test(adb): fix browser tests (#4700)
f89dcc7b - feat(adb): implement push (#4697)
b8112ded - devops: fix Android tests on GHA (#4698)
f4eff4db - devops: add bot to test Android (#4693)
67f92be3 - chore(deps): bump ini from 1.3.5 to 1.3.8 (#4692)
844b2c8f - chore(adb): lint the driver (#4696)
ad5309ca - feat(adb): make shell return binary (#4695)
7c89ec05 - feat(adb): expose a11y tree (#4694)
1b7fb7d5 - feat(android): expose installAPK(path) and ADB socket (#4689)
6cc695d9 - test(adb): fix the adb tests (#4691)
2ba60e92 - test(adb): add some adb tests (#4679)
aa1b546b - chore(android): respect timeout, add build script (#4690)
f20518f2 - fix(har): do not complain about a lot of listeners (#4675)
765b0778 - feat: start downloading arm64 Chromium builds (#4681)
616df7d2 - fix(adb): minor fixes (#4678)
495085cb - fix(chromium): make interception work with dedicated workers (#4658)
b9c95976 - feat(selectors): optimize old->new conversion for css (#4672)
e97ab7e4 - test: unflake some web socket tests (#4673)
12dc04a3 - feat(selectors): optimize old->new selectors conversion for text (#4671)
c8e9b054 - feat(selectors): disable proximity selectors (#4659)
84ff20f1 - test: fix test server on Node 15 (#4668)
b486e840 - devops: revert ability to skip architecture enforcement (#4667)
4f3f6267 - chore: add dummy package.json's for GH dependents analysis (#4666)
8fc49c98 - feat(adb): support webviews (#4657)
f939fdc1 - feat(firefox): bump to 1221 (#4656)
b67e0221 - feat(selectors): update new text selector (#4654)
aacd8e63 - chore: expose adb devices and actions (#4647)
ab44d682 - feat(selectors): remove index for now, add documentation (#4640)
1d90d7a9 - feat: fix browser installation on mac 11.0-arm64 (#4652)
e0a02c3f - feat(webkit): bump to 1402 (#4651)
bc0af57a - feat: support download of native WebKit build for Apple M1 (#4648)
add7ce7f - devops: fix buildbot mac m1 name
c36af734 - devops: add old-fashioned scripts to run Mac M1 buildbot (#4649)
93c362de - devops: fix architecture enforcement (#4645)
6d3278f1 - devops: add ability to skip architecture enforcement (#4644)
dd9c312b - devops: start producing WebKit builds for Apple Silicon (#4643)
64a2940a - devops: fix webkit archiving (#4642)
17f1b20f - devops: trigger all builds with new windows buildbot (#4638)
6c4d3b86 - chore(docker): put browser deps instructions first (#4637)
c1dcef39 - devops(windows): fix vswhere location (#4636)
99b98d62 - browser(webkit): do not spam stderr with screencast debug logs (#4635)
1060fce0 - feat(selectors): explicit list of custom functions (#4629)
be16ce4b - feat(errors): append recent browser logs when browser disconnects (#4625)
e1e000d2 - browser(firefox): do not spam stderr with screencast logs (#4630)
ea833daa - chore: fix internal binding (#4598)
1e754a4d - feat(selectors): proximity selectors (#4614)
c36f5fa3 - feat(chromium): roll to 833159 (#4626)
18b565a9 - feat(selectors): correctly work in large DOM (#4628)
73982834 - devops: absolute paths for webkit libraries and output directory (#4627)
20201310 - feat(firefox): roll Firefox to r1218 (#4620)
e8dcd876 - browser(chromium): build 833159 (#4623)
e75ebc17 - browser(firefox): roll Firefox to Dec, 7 2020 (#4622)
4be41f25 - browser(webkit): build fix, switch to the new download API (#4621)
d8520f06 - devops: fix webkit building on windows (#4618)
13e2ef1d - devops: suppport WK_CHECKOUT_PATH variable (#4617)
71b7b488 - chore: use Node.js 14 (new LTS) in Docker image (#4262)
1e0ab79f - feat(selectors): add visible and index engines (#4595)
a3a31bc8 - doc: add the mobile.md doc (#4612)
1717cbd3 - doc: describe return value as a part of method (#4608)
cdd9fd6b - test(click): add a failing test for click w/ scroll (#4606)
6fe7d9c1 - devops: support FF_CHECKOUT_PATH to customize browser checkout (#4607)
96a1f79e - docs: reformat api-body to allow multiline params documentation (#4604)
b6eb8e0a - browser(webkit): fix mac build (#4605)
8218a71a - feat(selectors): add more tests for css selectors (#4596)
cdbc96ac - browser(webkit): roll to 12-04 (#4601)
aed3d14b - test: unflake "should not result in unhandled rejection" (#4602)
bf7dff80 - chore: remove the --only-update-browsers option
20c17d54 - chore: fix the doclint tests
7dc386fa - browser(webkit): produce xcode 12.2 build on Mac 10.15 (#4599)
150d778c - docs: disambiguate events (#4597)
8551fff4 - browser(firefox): disable cross-process navigation (#4594)
761b78ef - docs: generate links based on the method names (#4593)
49a3f943 - feat(selectors): switch to the new engine (#4589)
7213794a - Correct typo in "emulateMedia" call example. (#4592)
2452d07f - docs: generate method signatures in docs (#4590)
0eb6f856 - docs: pretty-print api.md (#4588)
5d47a974 - docs: reformat template parameters (#4587)
016925cd - feat(selectors): i...
v0.162.2
v0.162.1
Highlights
Touch
- Use
page.tap()
to automate native tap events. Like other input events, taps auto-wait for the UI element and actionability checks.
Network
- WebSocket inspection: Use
page.on('websocket')
and the new WebSocket class to inspect WebSocket connections. - HAR export: Capture and export all the network activity as a HAR file. Pass
recordHar
while creating new browser contexts. - Resource timing: Use
request.timing()
to retrieve and analyze timing data for the network requests. - Proxy for browser context: Network proxy settings can now be configured per browser contexts with the
proxy
option on the new context.
Playwright CLI
- CLI codegen can now generate C# code. Run
npx playwright-cli codegen --target=csharp
to try!
Browser Versions
- Chromium 88.0.4316.0
- Mozilla Firefox 83.0b8
- WebKit 14.0
New APIs
- new class WebSocket
- new option
proxy
inbrowser.newContext()
andbrowser.newPage()
- new option
recordHar
inbrowser.newContext()
andbrowser.newPage()
- new option
recordVideo
inbrowser.newContext()
andbrowser.newPage()
- new
page.on('websocket')
event - new
page.tap()
method - new
elementHandle.tap()
method - new
page.touchscreen
namespace to access Touchscreen - new [
request.timing
] property
Issues Closed (39)
#1655 - [Feature] Custom methods on Page
#2515 - [Feature] networkidle for "idle after action"
#2695 - [Feature] WebSockets supports
#2946 - Not able to detect browser event: disconnected event when close browser is invoked
#2974 - [BUG] Unable to adopt element handle from a different document
#3122 - [QUESTION] Chromium versions are mismatched in docker, leading to launch failures
#3206 - [Feature] Export network as HAR
#3466 - [Feature] Fill input field based on label text
#3476 - [BUG] Firefox focus won't work with more than 1 page
#3499 - [BUG] Playwright does not see iframe element as visible
#3534 - [Feature] Allow set proxy per context
#3693 - [BUG] RPC/Firefox goBack does not return a response (guid)
#3830 - [Feature] Text selector engine normalise whitespaces
#4002 - [BUG] page.waitForSelector fails when called during a redirect
#4021 - [BUG] beforeunload event in headless mode is failing
#4038 - [REGRESSION]: Tall screenshots in chromium get corrupted at bottom
#4134 - [BUG] elementHandle.scrollIntoViewIfNeeded doesn't work properly
#4179 - [BUG] Unable to close page when confirm dialog is open
#4208 - [BUG] Timout Error on firefox for popup
#4232 - [BUG] Group videoPath and videoSize under recordVideo option
#4233 - [BUG] download file not occurs
#4255 - [Question]: Exposing common Playwright types
#4256 - [Question] playwright-electron types might be missing from the release or is there any guide on how to get it to work?
#4265 - [Feature] Multiple text selectors
#4266 - [Question] Exported video quality
#4268 - [Question] Does puppeteer have Redhat Dockerfile support?
#4277 - [BUG] Firefox workers cause frame navigation
#4279 - How to Compare two screenshots? Need code [Question]
#4282 - [Question] is there a way to get element background colour ?
#4284 - [BUG] page.addInitScript doesn't work for large scripts
#4285 - Running WebKit on AWS EC2 Instance [Question]
#4286 - [Question] CDP sessions with other targets
#4293 - [BUG] Bundle dlls with Firefox for Windows
#4302 - [Question] What is the best way to scroll page to the bottom?
#4317 - [Question] drag and drop
#4318 - [Question] Query by text with space
#4319 - [Question] Have the browsers that are downloaded for playwright 1.3.0 changed somehow ?
#4321 - [Feature] pass arguments like proxy to each context not to whole browser
#4326 - [Test] Ubuntu: browsercontext-proxy.spec.ts:128:1 › should exclude patterns crashes webkit
v0.162.0
Rolled to Playwright 1.6.2
v0.152.0
Rolled to Playwright 1.5.2
v0.151.1
v0.151.0
Rolled to Playwright 1.5.1
v0.150.0
Highlights
- Based on Playwright v1.5.0
- Video screencasts API is now stable: Use the
videosPath
option while creating browser contexts to record videos for all pages within the context. See examples. - CLI is now baked into Playwright module. List available CLI options with
python -m playwright --help
- Record Playwright scripts in Python using
python -m playwright codegen
- Record async scripts using
python -m playwright codegen --target=python-async
- Open pages and capture screenshots
- Generate PDFs
- Learn more on the playwright-cli page
- Record Playwright scripts in Python using
Breaking changes
- Chromium sandboxing is now opt-in. This is to simplify running Playwright tests in CI environments. Learn how to enable sandboxing.
Browser Versions
- Chromium 88.0.4287.0
- Mozilla Firefox 82.0b9
- WebKit 14.0
New APIs
browser.newPage()
,browser.newContext()
andbrowserType.launchPersistentContext()
now supportvideosPath
andvideoSize
option.- New
browserContext.browser()
method. - Both
browserContext.exposeBinding()
andpage.exposeBinding()
now accepthandle
parameter to pass handles instead of serialized values.