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()
method
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
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)