Skip to content

Releases: microsoft/playwright-python

v1.10.0

24 Mar 21:32
1a4bdf7
Compare
Choose a tag to compare

Highlights

  • Run Playwright against Google Chrome and Microsoft Edge stable channels with the new channels API.
  • Chromium screenshots are fast on Mac & Windows.

Bundled Browser Versions

  • Chromium 90.0.4430.0
  • Mozilla Firefox 87.0b10
  • WebKit 14.2

This version of Playwright was also tested against the following stable channels:

  • Google Chrome 89
  • Microsoft Edge 89

New APIs

v1.9.2

10 Mar 21:11
f01e0b3
Compare
Choose a tag to compare

Highlights

Text selector and click() fixes.

Browser Versions

  • Chromium 90.0.4421.0
  • Mozilla Firefox 86.0b10
  • WebKit 14.1
Issues Closed (4)

#538 - page.on("request", f=func) fails if func is a class method
#534 - Either path or source parameter must be specified

microsoft/playwright#5634 - [REGRESSION]: Test selector changed behavior
microsoft/playwright#5674 - [REGRESSION]: Label is not visible anymore

v1.9.1

26 Feb 00:47
Compare
Choose a tag to compare

Highlights

Text selector fixes.

Browser Versions

  • Chromium 90.0.4421.0
  • Mozilla Firefox 86.0b10
  • WebKit 14.1

v1.9.0

24 Feb 01:36
f388fb9
Compare
Choose a tag to compare

Highlights

  • Playwright for Python is now stable with an idiomatic snake case API and pre-built Docker image to run tests in CI/CD.

  • Playwright Inspector is a new GUI tool to author and debug your tests.

    • Line-by-line debugging of your Playwright scripts, with play, pause and step-through.
    • Author new scripts by recording user actions.
    • Generate element selectors for your script by hovering over elements.
    • Set the PWDEBUG=1 environment variable to launch the Inspector
  • Pause script execution with page.pause() in headed mode. Pausing the page launches Playwright Inspector for debugging.

  • New has-text pseudo-class for CSS selectors. :has-text("example") matches any element containing "example" somewhere inside, possibly in a child or a descendant element. See more examples.

  • Page dialogs are now auto-dismissed during execution, unless a listener for dialog event is configured. Learn more about this.

Browser Versions

  • Chromium 90.0.4421.0
  • Mozilla Firefox 86.0b10
  • WebKit 14.1

New APIs

v1.8.0a1

20 Jan 20:39
Compare
Choose a tag to compare

Highlights

  • Playwright goes semver. We are jumping from 0.170.* to 1.8.0a1 to become semver compliant. This is a breaking change, but once we drop the Alpha bit, it'll be in stone for years!
  • Documentation site is now all about Python! It has guides, sample snippets, API docs
  • You can now select elements based on layout with :left-of(), :right-of(), :above() and :below()
  • New methods to assert element state like page.is_editable('selector') were added.

Migration from the pre-release versions

The API has changed since the last 0.170.0 version:

  • Snake case notation for methods and arguments:

    # old
    browser.newPage()
    # new
    browser.new_page()
  • Import has changed to include sync vs async mode explicitly:

    # old
    from playwright import sync_playwright
    # new
    from playwright.sync_api import sync_playwright

Browser Versions

  • Chromium 90.0.4392.0
  • Mozilla Firefox 85.0b5
  • WebKit 14.1

New APIs

v0.171.1

28 Dec 21:46
3b87bca
Compare
Choose a tag to compare
  • chore(stderr): fix handling without stderr fileno (#402)

v0.171.0

23 Dec 07:21
683952d
Compare
Choose a tag to compare

Rolled to Playwright 1.7.1

v0.170.0

16 Dec 15:26
Compare
Choose a tag to compare

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...

Read more

v0.162.2

02 Dec 01:07
Compare
Choose a tag to compare
  • fix(video): fix the new recordVideo API (#336)
  • chore: explicitly use greenlet 1.0a1 (#321)

v0.162.1

18 Nov 22:25
Compare
Choose a tag to compare

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

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