Playwright v1.6.0 Release Notes

Release Date: 2020-11-12 // over 3 years ago
  • 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

    #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

    Commits (164)

    2158d6d - feat(scopes): make page a scope (#4385)
    58b5872 - feat(webkit): bump to 1383 (#4394)
    โœ… 508be0d - browser(webkit): fix big sur crashes after latest roll (#4391)
    c2db837 - feat(webkit): roll to r1381 (#4388)
    775be21 - fix(launchdoctor): fix launch doctor (#4387)
    488b256 - feat(firefox): bump to 1205 (#4386)
    ๐Ÿ’ป bd75fb1 - browser(webkit): roll to 11-09 (#4384)
    ๐Ÿ‘ท ae738c1 - browser(firefox): ignore WebProgress events coming from workers (#4380)
    โœ… f7eb845 - feat(firefox): bump to 1204, add a better test for video in popup (#4376)
    28f6547 - chore: add adb-based connectivity (#4375)
    ๐Ÿ’ป 06c8881 - browser(firefox): fix videoSessionId (#4374)
    3db8b23 - fix(chromium): lifecycle events race (#4369)
    c83ac44 - api(websocket): do not send websocket frames without a listener (#4361)
    d74988e - feat(webkit): bump to 1380 (#4368)
    ๐ŸŽ d4fb159 - browser(webkit): fix webcontent startup crash on macos 11 (#4370)
    fff36a7 - feat(firefox): roll Firefox to r1203 (#4365)
    ๐Ÿ’ป c522a0d - browser(firefox): force always active docshell (#4363)
    ๐Ÿ’ป 49e4d9a - browser(webkit): force rebuild with new redistributable dlls (#4364)
    354482d - feat(firefox): bump to 1202 (#4362)
    ๐Ÿ’ป 040f9b0 - browser(webkit): copy MS VC++ redistributable libs from VS installation (#4360)
    5faf6f9 - feat(firefox): switch to use pipe instead of websocket (#3279)
    ๐Ÿ’ป aafcf93 - browser(firefox): bundle VS C++ redistributable dlls (#4359)
    ๐Ÿ’ป bc20bfd - browser(webkit): disable cache compiled sandbox (#4357)
    c384313 - feat(fill): allow filling based on the label selector (#4342)
    ๐Ÿ— 5d39eae - devops: actually export secrets into webkit building workflow (#4354)
    ๐Ÿ— db8332b - devops: checkout, build, and upload webkit-mac-11 (#4353)
    ๐Ÿ’ป b94a7c0 - devops: speedup initial browser checkout (#4352)
    ๐Ÿ— bba8c98 - devops: try building webkit on gha (#4351)
    ๐Ÿ— 4d8ef42 - devops: add instructions to build mac on BigSur (#4350)
    โœ… 3f37d85 - test(focus): add passing test for focusing more than one page (#4347)
    e942138 - fix: do not report errored pages after context closure (#4346)
    โœ… 4cb5214 - test(capabilities): add tests for webgl (#4343)
    283bc2c - devops: ensure that embedder directory does not exist (#4340)
    65009dc - feat(chromium): roll Chromium to r823944 (#4341)
    14a8292 - feat(webkit): bump to 1378 (#4338)
    โœ… 12afb79 - test: unflake har tests (#4335)
    5dc632b - chore: mirror Chromium 823944 to our cdn (#4339)
    โœ… 78b1511 - test: try to unflake screenshot tests (#4334)
    โœ… 5c1149f - test: try to unflake network idle tests (#4333)
    ๐Ÿ’ป 890add9 - browser(webkit): do not hang on close when there is a dialog (#4332)
    bc97650 - feat(firefox): roll Firefox to r1201 (#4331)
    ๐Ÿ— 031f0bf - browser(webkit): fix mac build failure caused by touch events (#4330)
    ๐Ÿ’ป c6b4263 - browser(webkit): fix timezone overrides after last roll (#4329)
    ๐Ÿ’ป 799604c - browser(firefox): roll Firefox to beta @ Nov, 3 (#4327)
    ๐Ÿ’ป eae3d93 - browser(webkit): fix proxy ignore pattern set on context level (#4328)
    ๐Ÿ’ป 0a9fdc4 - browser(webkit): roll to 11-03 (#4325)
    ๐Ÿ‘ d57b439 - fix(har): support har in persistent context (#4322)
    924cc98 - feat(text selector): normalize spaces in lax mode (#4312)
    8fed0b3 - feat(firefox): roll Firefox to r1200 (#4316)
    1c39689 - api(videos): introduce a single recordVideo option bag (#4309)
    46e124a - fix(api.json): use separate maps for methods and events (#4310)
    51f8f23 - devops(flakiness): collect more commit information (#4315)
    ๐Ÿ’ป e3b12b0 - browser(firefox): fix closing browser contexts with beforeunload (#4314)
    โœ… 3d3ce13 - test: co-locate beforeunload tests (#4313)
    ๐Ÿ’ป 2b495c9 - browser(firefox): fix SimpleChannel to await initialization (#4311)
    f80f815 - feat(chromium): bump to 823078 (#4308)
    ac8ab1e - feat(websocket): add WebSocket.waitForEvent and isClosed (#4301)
    c446bf6 - chore: cleanup some har code (#4306)
    d117d0b - feat(scopes): make page a scope (#4300)
    ๐Ÿ’ป 1255289 - browser(chromium): roll to 823078 (#4307)
    ๐Ÿ“„ 9c80cbd - fix(docs): small docs changes for new apis (#4305)
    94cb7c9 - feat(webkit): bump to 1373 (#4299)
    ๐Ÿ— 7ef1533 - browser(webkit): one more mac build fix after last roll (#4298)
    ๐Ÿ— 3577e63 - browser(webkit): mac build fix after last roll (#4296)
    ๐Ÿšš 5a9ba55 - test: remove stale describe
    โœ… c9fa8c0 - fix(test): unflake web socket test on firefox
    ๐Ÿ’ป 5e50fe3 - browser(webkit): roll to 10-30 (#4294)
    ๐Ÿ‘ 7fbbd18 - feat(firefox): support WebSockets on Firefox (#4289)
    333916a - infra: bump to next version on trunk at a branch point (#4288)
    ๐Ÿ’ป 18c3efe - browser(firefox): instrument websockets (#4287)
    914f637 - feat(proxy): enable per-context http proxy (#4280)
    ff7d6a2 - feat(firefox): roll Firefox to r1197 (#4278)
    โœ… aee9068 - test: mark flake headful chromium test as fixme (#4276)
    โœ… f384a86 - test(har): uncomment some raw header tests (#4273)
    โœ… efdb154 - test: roll folio to 0.3.16 (#4275)
    ๐Ÿ’ป c5d3490 - browser(firefox): roll firefox to beta Oct, 28 (#4274)
    ๐Ÿ’ป 7bedbb2 - feat(browser): roll WebKit to r1370 (#4257)
    ece84ec - fix(protocol): annotate file buffer as binary (#4272)
    ๐Ÿ— 05278b8 - chore: remove committed types.d.ts - we are still generating it at build time (#4271)
    ๐Ÿ’ป 41d514d - browser(webkit): disable gamepad on GTK (#4264)
    6cafdc5 - infra: fix the headful bit on the bots (#4261)
    ๐Ÿšš 05fd572 - docs(api): remove * from permissions (#4260)
    0b8c33e - fix(ECONRESET): fix it once and for all (#4258)
    ๐Ÿณ dcbdb4a - test: fixed executable path test if ran in Docker (#4219)
    1ef090c - fix(screenshot): prioritize passed type over the extension mime (#4251)
    e62f27a - chore: eliminate dead code (#4253)
    aa219c6 - chore: roll folio to v0.3.15 (#4252)
    ๐ŸŒ be84284 - feat(websocket): implement Web Sockets for Chromium & WebKit (#4234)
    ๐Ÿ’ป 00d6313 - browser(webkit): report raw request headers from didReceiveResponse (#4250)
    ๐Ÿง b08d3dc - devops: always ensure linux deps when building webkit (#4249)
    ๐Ÿ— 39637a4 - browser(webkit): build fix (#4247)
    โœ… 163cf1b - devops: collect test reports for all bots (#4246)
    ๐Ÿ— 1feb041 - browser(webkit): fix mac build after last roll (#4245)
    ๐Ÿ’ป c1a64ee - browser(webkit): serialize set-cookie \n-separated (#4243)
    86e1e3f - devops: collect host os name and version (#4244)
    7fc4b79 - feat(har): allow saving har for context (#4214)
    โœ… d5fbe3a - devops: start uploading test reports to flakiness dashboard (#4239)
    ๐Ÿ’ป 4b2a29e - browser(webkit): roll to 10-26 (#4241)
    ccf68ec - chore: roll folio to 0.3.14 (#4240)
    โฑ f5fbea9 - feat(debug): allow using timeout for rafs for throttling debugging
    0337928 - fix(env): respect =true/false as env values for boolean flags (#4228)
    ba79493 - chore: roll folio to 0.3.13 (#4215)
    โœ… 14f069e - test(timing): relax mac/webkit expectations (#4217)
    โœ… b3b46db - test(firefox): add a failing slow test (#4216)
    โšก๏ธ ea910a4 - fix: update getFromEnv logic to validate that value is undefined (instead of falsey) before redefining it (#4226)
    c97af3e - fix(listeners): avoid "too many listeners" problem safely (#4223)
    ๐Ÿ›  50a6ba7 - feat: bump webkit version to include screencast fixes (#4200)
    โช c4fbc64 - Revert "fix(listeners): avoid "too many listeners" problem (#3931)" (#4222)
    ๐Ÿณ 8f3c0d5 - fix(docker): add pwuser to Docker focal image (#4201)
    7232027 - fix(headers): report raw request headers on Chromium (#4207)
    8a42cda - feat(timing): introduce resource timing (#4204)
    โšก๏ธ bed304b - doc: update playwright-sharp link (#4202)
    ๐Ÿ’ป 437fe17 - browser(firefox): expose resource timing info (#4205)
    7d28dfd - feat(firefox): roll Firefox to r1194 (#4183)
    ๐Ÿ— 06cafff - feat(winldd): upload r1003 build (#4199)
    ๐ŸŽ 45bb984 - test: skip 'should play video' on macOS Big Sur (#4198)
    920ea85 - fix(winldd): make linker set checksum to make antiviruses happy (#4197)
    ๐Ÿ’ป 092c990 - browser(firefox): fix screencast timescale precision (#4196)
    ๐Ÿ’ป 54e05ac - browser(webkit): fix screencast timescale precision (#4195)
    โœ… 3cceb14 - test(beforeunload): add failing beforeunload test (#4188)
    โœ… 7433ae2 - test: follow up to an encoding test (#4187)
    โœ… 7f76d44 - test: add a test for page.close w/ dialogs (#4184)
    โœ… 5e7eb7a - test(encoding): add a test for main resource raw body (#4186)
    โœ… efac743 - test(proxy): add a test for a second page against same proxy (#4185)
    9c160f2 - feat(webkit): bump to 1363 (#4178)
    5d997ed - fix(video): make video path available in persistent profiles (#4182)
    ๐Ÿ bf491f1 - browser(webkit): fix pointer media query on windows (#4176)
    92dda69 - feat: tap (#4097)
    ๐ŸŽ ebf207b - chore: add support for macOS Big Sur (11.0) (#4149)
    ๐Ÿ’ป 92cde6c - browser(webkit): roll to 10-19 (#4177)
    86ef956 - feat(webkit): bump to 1357 (#4154)
    ๐Ÿ’ป 347dd24 - browser(webkit): fix pointer media query on mac (#4155)
    ๐Ÿ’ป 4f7d65f - browser(firefox): report pageerrors without stack properties (#4166)
    ๐Ÿšš ef3d3ca - doc(overrides): remove "one of" that was misleading (#4168)
    7103887 - add type for selector engine (#4174)
    bbdba42 - chore(screencast): respect i/o backpressure when writing into ffmpeg (#4164)
    ๐Ÿ’ป 26442c5 - browser(webkit): fix the datastore leak (#4163)
    ๐Ÿ’ป 305d209 - browser(firefox): always send focus events (#4150)
    ๐Ÿ 97cb51f - browser(webkit): fix windows compilation after last roll (#4162)
    ๐Ÿ’ป 6fb6929 - browser(webkit): roll to 10-15 (#4161)
    โœ… fec37ad - test: use custom header when testing header removal (#4157)
    ๐Ÿ’ป 8f8bebb - browser(firefox): roll Firefox to tip-of-tree Oct, 12 (#4158)
    ๐Ÿšš 7e6f2af - test: disable failing test "should be able to remove headers" (#4152)
    ๐Ÿ’ป a61d07a - browser(webkit): report correct pointer type to css (#3936)
    ๐Ÿšš 180aa01 - test: make "remove header" test actually test be havior (#4092)
    ๐Ÿ’ป 3c32c16 - browser(firefox): use 16-byte long uid instead of ordinal as screencast id (#4147)
    e9f5477 - fix(screencast): await for the first video frame on Chromium (#4145)
    46a49d0 - fix(screencast): bump chromium video quality (#4146)
    bb981fc - fix(screencast): correctly process videos with 1 frame (#4144)
    ๐Ÿ“„ 25cb649 - docs: fix Video.path() type (#4141)
    ๐Ÿ’ป a169cb6 - browser(webkit): fix mac compilation errors (#4139)
    c7b2359 - feat(firefox): roll to r1190 (#4133)
    ๐Ÿ’ป 8c6a2e1 - browser(webkit): Input.dispatchTapEvent (#4102)
    381f49a - chore: roll folio to 0.3.11 (#4130)
    โช 5a76856 - api(video): restore the missing video path accessor (#4132)
    โœ… 9daedac - chore: roll test fixtures, replace trace w/ video (#4129)
    ๐Ÿ’ป a4474f6 - browser(firefox): Page.dispatchTapEvent (#4101)
    โฑ 5804131 - chore: bump folio to 0.3.9, use fixture timeout (#4118)
    โช 71c444c - browser(webkit): revert changes to WebAutomationSession.h (#4128)
    ๐Ÿšš d6240a3 - docs(showcase): remove codex from users
    ๐Ÿ“„ 331bb81 - docs: add note about videos saving on context closure (#4126)
    fdff5a1 - feat(webkit): bump to 1353 (#4119)
    ๐Ÿ’ป 58285f6 - browser(firefox): await browser initialization when closing browser (#4121)
    โšก๏ธ 8ad3404 - fix(test): update path for screenshots on failure (#4120)