Highlights
- Python support: Official Playwright for Python is ready for preview!
- Use the Pytest plugin to write your end-to-end tests in Python.
- Validate system dependencies: Playwright now automatically checks for browser dependencies on Linux and Windows systems.
- Ubuntu 20.04: Playwright now provides browser builds for Ubuntu 20.04.
Browser Versions
- Chromium 86.0.4217.0
- Mozilla Firefox 78.0b5
- WebKit 14.0
New APIs
browser.version()
page.bringToFront()
download.saveAs()
request.postDataBuffer()
- new
chromiumSandbox
option inbrowserType.launch()
,browserType.launchPersistentContext()
andbrowserType.launchServer()
Thank You
- Special thanks to Max Schmitt for the massive contribution to playwright-python, for leading the playwright-pytest effort and other contributions on playwright.
- Thanks to Ross Wollman for his contributions on the new
download.saveAs()
API and tests across playwright-python and playwright. - A big thank you to all contributors who helped us with this release: Darío Kondratiuk, Paul, Yevhen, Anish Karandikar, Tapajyoti Bose, Carlos Alberto Lopez Perez, Lars den Bakker, and Tierney Cyren.
Issues Closed (31)
#657 - Cannot choose page to be visible in headful mode
#2269 - [Feature] Support ES module syntax
#2298 - [Bug] Firefox fails with STATUS_DLL_NOT_FOUND on some Win 10 setups
#2358 - [BUG] route.fulfill failed with TimeoutError if the response headers contains newline
#2386 - [Question] Run playwright from docker container running express server - sandbox issues
#2449 - [BUG] Linux Playwright Webkit engine doesn't allow video.play()
#2523 - [Question] download file deleted while copying
#2547 - [BUG] unable to launch firefox on virtual box windows
#2548 - [BUG] unable to launch webkit on virtual box windows
#2588 - [BUG] corrupted post data on application/x-protobuffer (probably other non-string postData formats)
#2604 - [Feature] Browser.version()
#2621 - [BUG] Webkit problem with libwebp-1.1.0-1, error while loading shared libraries: libwebp.so.6
#2622 - [BUG] page.waitForResponse is not working for Firefox
#2624 - [Question] When running two or more browser instance for running test cases, all the test cases fails with in Docker
#2626 - [BUG] Webkit font rendering (spacing / icon fonts)
#2645 - [BUG]Once test execution is completed, error in closing chromium browser
#2663 - [BUG] Getting Error: Protocol error (Target.setAutoAttach): Target closed.
#2702 - [BUG] Webkit clears on page.type – Chromium/Firefox don't
#2730 - [BUG] - TypeError: Cannot read property 'push' of undefined - When restarting tests
#2745 - [Feature] Launch doctor
#2787 - How to test mobile devices in Firefox?
#2864 - WebGL Renderer on WebKit Browser
#2901 - [BUG] Chromium not launching on Windows
#2906 - [BUG] Coverage types incorrect
#2921 - [BUG] selectOption Bug
#2940 - Parallel load
#2943 - [BUG] Docs for v1.2.1 are broken
#2972 - [Question] how to run playwright script in docker
#2975 - [Question] Can releases specifically indicate the MacOS version compatibility
#2978 - [Question] Playwright and TypeScript
#2979 - [BUG] FF - launchPersistentContext
Commits (287)
d01f63b - chore: mark v1.3.0
83539d1 - chore: cut v1.3.0-post (#3309)
4956041 - fix(validation): error typo "unknown" (#3304)
9280037 - chore(test): add blank lines (#3303)
b03b4a5 - chore: doc type nits (#3283)
90819fa - browser(firefox): always create image buffer in headless mode (#3299)
7e28c26 - browser(firefox): do not complain about SnapshotListener being cleared on Destroy (#3298)
9ec0267 - chore(test): use pathToFileURL (#3292)
3c2fcb7 - feat(webkit): bump to 1322 (#3297)
57490b7 - test: remove describes (6) (#3295)
4cbfa09 - test: remove describes (5) (#3294)
1673e62 - docs: update table of contents for docs sidebar (#3291)
2e65b0a - test: remove describes (4) (#3286)
028dd08 - docs: update documentation for evaluation argument (#3287)
8881a52 - browser(webkit): roll to 8/4 (#3289)
2508976 - devops: fix typo in rustup detection (#3282)
d3a40be - browser(firefox): reliably close the pipe (#3280)
573f580 - test: remove describes (3) (#3278)
de55fa6 - fix(webkit): ensure WebKit can play h264 video (#3272)
402d1a6 - browser(firefox): fix win compile 2 (#3277)
bb26735 - test: remove describes (2) (#3276)
e481f37 - browser(firefox): fix win compile (#3275)
5c4f067 - test: remove describes (#3274)
1148f0b - browser(firefox): implement RemoteDebuggingPipe (#3273)
bad4005 - chore(devops): do not copy pw_run.sh to subfolders (#3271)
b52d259 - feat(webkit): bump to 1321 (#3270)
126b1f7 - feat(rpc): run doclint against rpc client (#3260)
f62e9b5 - browser(webkit): kick-off 1321 build to pick up new WebKitLibraries/win (#3263)
776f019 - fix(chromium): remove Debugger.paused event listener on coverage stop (#3252)
7e8d03b - fix(launcher): extend list of known missing DLLs (#3256)
8709ad7 - chore(tools): update PrintDeps license header (#3254)
cbd33f9 - devops: avoid running publish on external contrib (#3257)
ba9030e - docs: update api.md with more references to actionability (#3255)
928a176 - docs: update docs (#3253)
3edfb2a - test: add REPORT_ONLY mode for test collection (#3225)
9b3c90e - feat(webkit): bump version to 1320 (#3248)
70b92e1 - docs(README): Point to hosted docs (#3208)
4e5aa3c - feat(rpc): support chromiumSandbox option (#3251)
ce0ddd2 - feat(download): create directories for saveAs (#3249)
93056ed - chore(rpc): more protocol nits (#3246)
421f6f4 - devops: use playwright-github-action@v1 (#3221)
cbfdca7 - feat(launcher): check dependencies before launch on Windows (#3240)
21eafbc - test: unflake screenshot test (#3245)
2f95b6e - feat(selectors): auto-detect xpath starting with ".." (#3239)
235c5df - docs: add readme file for PrintDepsWindows (#3241)
6297f86 - feat(rpc): run generate-channels during lint (#3238)
9103ce0 - devops: fix firefox build (#3237)
e7ddf86 - devops: rename docker image tag for tip-of-tree images (#3222)
0891678 - fix(test): display correct error when golden files mismatch (#3234)
19e8c0f - chore(deps): bump elliptic from 6.5.2 to 6.5.3 (#3235)
1728a3d - chore: minor protocol fixes (#3226)
8893866 - devops(windows): add tool for printing library dependencies on Windows (#3224)
cefb1b9 - feat(rpc): run fixtures.jest.js with channel (#3227)
4961c2d - devops(firefox): fixate rust and cbindgen version (#3223)
e091325 - fix: a pretty error when browser executable is not found (#3220)
ae0c3a6 - docs(devops): update docs for buildbots (#3218)
52eb6c6 - fix(rpc): protocol Route.fulfill (#3200)
3bd9777 - feat(rpc): do not use server types and events in rpc/client (#3219)
7dd9f2c - test(iframes): add x-frame-options display test (#3217)
9132d23 - fix(screenshot): wait for stable position before taking element screenshot (#3216)
c6180ed - browser(webkit): print missing dll error to the console (#3214)
10225d1 - test: fix a race in the oopif test (#3211)
487bc58 - devops: re-factor list-dependencies script to output per-browser results (#3194)
84a17f2 - fix(rpc): Frame.dblclick is missing notWaitAfter (#3210)
77b1c4b - devops: enable Ubuntu 20.04 tests (#3178)
f111ad7 - fix: add missing libgles2
package to launch doctor (#3209)
21b1be7 - docs(selectors): fixed selector register example (#3169)
6bc02f8 - feat(launchdoctor): detect missing libraries for dlopen
(#3202)
a700a7a - feat(chromium): roll to 07/29 (#3207)
bdfde5c - fix(firefox): roll firefox for postdata fix (#3196)
fab5eba - fix(oopifs): translate coordinates to viewport (#3201)
6cb1e03 - feat(rpc): disallow deps into rpc client from outside (#3199)
3e023f6 - Revert "browser(firefox): fix color scheme not updating until reload" (#3198)
d27f97e - devops: include protocol and api.md in NPM package (#3195)
14c6881 - browser(firefox): properly rewrite intercepted request (#3188)
a59220b - test: prepare fixtures test to run with rpc (#3190)
da25a5b - browser(firefox): do not capture cursor in screencast (#3118)
576e2c5 - fix(webkit): correctly report outerWidth/Height on Mac (#3133)
101dd3b - fix(test): make video test pass on Mac (#3121)
97c1000 - api: introduce Browser.version() (#3177)
e406119 - chore: add check_deps script (#3182)
20b7cff - fix: update jpeg-js version (#3179)
6fa7547 - fix(launchDoctor): add package mapping for libvpx.so.5
(#3180)
51ce47f - docs: use "Node.js" instead of "Node" (#3176)
b217919 - feat(rpc): replace implicit scopes with explicit dispose (#3173)
9b502af - fix(launchDoctor): support existing LD_LIBRARY_PATH (#3165)
f4e584e - feat(rpc): align class names with api docs (#3164)
d0b758a - test: improve autowaiting tests (#3168)
98cc9db - chore: simplify doclint (#3162)
fd2e65b - api: export all browsers from every package (#3128)
c8c92c5 - fix(utils): fix check-availability script (#3158)
d9890f1 - feat(rpc): make ElectronApplication a scope (#3159)
90ff667 - browser(webkit): disable high DPI support in Web Process on Windows (#3160)
86b64a2 - feat(launchDoctor): package mappings for Ubuntu 20.04 (#3155)
d4b7078 - feat: validate Ubuntu version if launching firefox (#3156)
549a37b - browser(firefox): fix color scheme not updating until reload (#3157)
415e94f - feat(rpc): server-side validator (#3150)
1455cae - test(emulation): add failing test for setting dark theme in firefox (#3149)
0a57c2b - support typescript in jest files (#3132)
6a4195f - fix(require): allow requiring internals (#3153)
3162c06 - browser(webkit): outerWidth/Height on Windows (#3154)
e7cca86 - fix(postData): allow overriding binary post data (#3120)
bec34db - feat(firefox,webkit): roll both Firefox and WebKit (#3145)
deccddb - feat(rpc): update BrowserServer (#3112)
0f0e2ac - fix(type): unify selection behavior when typing (#3141)
678d164 - devops: normalize blob names on the CDN (#3136)
79ab07b - devops: install Media Pack on Windows bot (#3137)
bbe7dbe - feat(installer): start downloadinb Ubuntu 20.04 builds (#3126)
0b9c647 - devops: detect completion status (#3135)
ae574b3 - devops: fix webkit build on ubuntu (#3134)
059004b - fix(test): don't leave so many zombies on sigint (#3130)
7494134 - browser(webkit): correctly report outerWidth/Height on Mac (#3131)
c1032ae - devops: simplify building webkit on linux bots (#3127)
d234dac - chore: support esm imports (#3125)
21581a4 - devops: fix buildbot names
cb77d33 - devops: add script for ubuntu 20.04 buildbot (#3123)
d2f24e8 - integrate toBeGolden with jest's snapshot system (#3124)
e5afd92 - chore(tests): resuse tmp file helpers from utils (#3119)
63689e3 - devops: prepare buildbots to the introduction of Ubuntu 20.04 builder (#3116)
2bed312 - fix(electron): emit close events in the correct order (#3111)
30e21e0 - test: fix api coverage (#3114)
244ce45 - test: add a test for mouse.dblclick (#3115)
c895c97 - browser(webkit): kick-off build for #3100 (#3113)
08b0dc6 - feat(webkit,firefox): bump versions (#3110)
1cfba7f - browser(webkit): periodically capture frames on mac regardless of updates
26c5784 - Rebase (#3096)
3d37e45 - browser(firefox): pass actual frame duration to the codec (#3101)
b271624 - browser(webkit): hardcode woff enabled on win (#3103)
68c4f79 - feat(rpc): convert protocol to yaml (#3102)
b1a5a02 - feat(rpc): client-side parameters validation (#3069)
e56e148 - test(postData): add a failing firefox test (#3098)
65002a0 - feat(rpc): support firefox user prefs (#3093)
80c0711 - feat(firefox): roll firefox to r1137 (#3095)
2a08883 - chore(download): follow up to remove the redundant checks (#3097)
baa0956 - Revert "test: screenshot on failure (#3053)" (#3091)
d8a17fb - api(download): Add saveAs helper (#2872)
4db035d - chore: roll_browser to also update docs (#3088)
ea5dfdb - fix: re-write Chromium startup error with clear instructions (#3070)
1aee8df - feat(rpc): align types/guids in the protocol with their pdl definition (#3079)
f50f228 - browser(chromium): roll chromium to r790602 (#3082)
773ee08 - chore(test): restore api coverage checks (#3068)
6e75533 - chore: respect jest params in npm run wtest (#3085)
2b0b0a9 - fix(misc): assorted fixes (#3031)
ced0bc2 - api: make clear the use of null in page.emulateMedia (#3078)
f751ab1 - browser(webkit): write screencast video to .webm instead of .ivf (#3081)
c0d9ccf - docs: update documentation on Chromium sandbox (#3077)
f4b7ed5 - fix(chromium): reland support selectAll on macos (#3038)
3c151d8 - fix(test): don't output babel's debug info on the bots (#3073)
db4e856 - feat(rpc): use SerializedValue for CDPSession (#3076)
1553f19 - chore: update error messages to match future rpc validator (#3075)
18cb1c0 - feat(rpc): inline selectors.register options in the protocol (#3072)
3dd6162 - feat(rpc): update Response.finished to return string instead of Error (#3071)
47e30f0 - feat: introduce chromiumSandbox
launch option (#3067)
af20d27 - fix: auto-add --no-sandbox
when running Chromium under root (#3064)
2120a23 - docs(readme): add link to system requirements (#3057)
3dead4c - feat(rpc): remove last union types from the protocol (#3059)
de9570e - browser(webkit): roll to ToT 07/21/2020 (#3066)
babd0cb - browser(firefox): fix Windows build (#3065)
7f29275 - browser(firefox): use base64 to deliver post data (#3063)
99658c2 - feat(bringToFront): enable on all browsers (#3052)
a03f1dd - test: screenshot on failure (#3053)
a5cb983 - browser(firefox): write video to .webm instead of .ivf (#3062)
2d59a8f - feat(rpc): remove some union types (#3058)
5848ed8 - feat(rpc): introduce protocol.pdl (#3054)
726f636 - browser(firefox): implement Page.bringToFront (#3051)
eb14c47 - browser(webkit): do not mask WebGL vendor/renderer info (#3050)
6db8962 - browser(firefox): smooth resize in headless (#3043)
23f506b - fix(test): write after end in proxy test (#3039)
d1f937d - browser(firefox): stop video recording if page closed (#3040)
37740444 - devops: add script to generate shared object => package mapping (#3022)
cfe3aa3 - test: add a few tests for null values (#3035)
29504c0 - feat(rpc): make SerializedValue format pdl-friendly (#3007)
79d5991 - doc: Improve unroute documentation (#3026)
6199ba2 - devops: remove travis, appveyor, circle for now (#3029)
b5f9985 - devops: make headful a matrix, collect test results (#3027)
13c3f72 - test: restart worker fixtures after test failure (#3021)
562e1e6 - browser(firefox): wait for file write to finish in stopVideoRecording (#3020)
c45b579 - test: support slow marker (#3018)
7d2078e - devops: bake browsers into Docker image (#2990)
9a2245d - devops: show package names instead of missing libs on Ubuntu 18.04 (#3013)
ef2a652 - feat: support atomic browser installation - attempt 2 (#3008)
a75835e - chore(jest): halve the max workers (#3017)
68ef90d - test(click): split into several files (#3016)
f2239b5 - test: respect CR/FF/WK/PATH env (#3015)
91e1a25 - feat(rpc): gracefully close browsers in server process on disconnect (#3005)
9d98011 - test: wire test commands to jest (#3014)
8904f40 - chore(jest): defaultbrowsercontext.jest.js (#3003)
a821633 - Revert "fix(chromium): select all on macos should work again (#3006)" (#3011)
096ec4c - test: move fixtures to jest (#3010)
24f6d19 - test: move remaining tests to jest (#3009)
9790cf2 - feat(webkit): bump to 1308 (#2991)
631fbce - fix(chromium): select all on macos should work again (#3006)
9140063 - fix(accessibility): don't filter everything when the page has a title (#2909)
d8bedd8 - chore: explicitly type SerializedArgument, fix rpc dispatchEvent (#2988)
070a257 - test: move all generic page tests to jest (#3002)
5cf3e4f - feat(rpc): switch Env to use an array, split ignoreDefaultArgs (#2984)
df8b270 - chore(jest): convert browser tests to jest (#3000)
1c0504a - test: respect fixtures in describe, match image snapshots (#2989)
fe95ee0 - test: group browserType.launchServer tests (#2944)
16e3776 - fix(JSCoverageEntry): added scriptId and isBlockCoverage (#2955)
424f11d - test: convert some tests to the jest+fixtures (#2983)
1896e8e - browser(webkit): send Playwright.pageProxyDestroyed for crashed tabs when deleting context (#2986)
89ccf99 - browser(firefox): screencast for Mac headful (#2985)
056f0e2 - feat(rpc): ensure that error stack traces point to the user code (#2961)
b890569 - feat(rpc): move leftover extraHTTPHeaders to HeadersArray (#2980)
439e048 - feat(rpc): migrate DeviceDescriptors payload to an array (#2981)
4c8ba3e - chore: remove cli (#2976)
513899a - test: add a test for arbitrary options (#2977)
ecc130c - test: convert evaluation.spec to jest+fixtures (#2968)
7080767 - devops: move CircleCI to run against dev version of Docker container (#2969)
a802b4a - feat(ff,wk): bump revisions (#2967)
198ecee - api(exposeBinding): allow handles in the binding result (#2970)
aa4c893 - feat(rpc): implement waitForNavigation on the client (#2949)
824f649 - devops(docker): fix docker for chromium (#2966)
177873e - chore(deps): bump lodash from 4.17.15 to 4.17.19 (#2964)
d750ba3 - fix(docker): add missing dependencies to docker image (#2963)
b7f7ba9 - browser(firefox): screencast support for Windows headful (#2965)
19cd96c - test: add the jest-circus experimental runner (#2962)
0b92181 - feat: validate browser dependencies before launching on Linux (#2960)
c51ea0a - feat(rpc): remove PageAttribution from the protocol, attribute on the client side (#2957)
7f61715 - feat(rpc): use headers array in the protocol (#2959)
3189303 - browser(webkit): close crashed pages on exit (#2958)
0aff9be - browser(firefox): screencast for headless mac (#2956)
4a00e5c - test: remove flaky test for binding on error pages (#2952)
2d5c032 - feat(rpc): return objects for every protocol command (#2950)
46a625d - feat(firefox): bump to 1127 (#2951)
1b84ec9 - fix(binding): dispatch binding after the page has been initialized (#2938)
89ca2db - browser(firefox): kick off new build after last commit (#2948)
de40329 - browser(firefox): add new files for headless screencast (#2947)
bf6f22d - browser(firefox): basic screencast for headless (#2931)
d5bd459 - chore(rpc): remove some paths from the channel (#2934)
cc8fe5a - feat(rpc): support electron (#2933)
9fdb3e2 - feat(rpc): support selectors (#2936)
6c75cbe - docs: fix link to github workflow in releasing doc
a06ba1c - devops: add utility to count compressed docker image size (#2920)
d58a57c - devops: fix docker publishing (#2939)
b7d68d1 - devops: automate Docker image publishing (#2937)
65d45c1 - feat(rpc): introduce Waiter for various waitFor implementations (#2935)
b2d820a - docs(emulation): separate section for dark mode (#2915)
9fd30e5 - feat(rpc): ensure feature-detection works as before (#2898)
2151757 - feat(rpc): run rpc tests in-process and out-of-process (#2929)
0346c3a - chore: update release notes draft gen (#2932)
6d94c92 - feat(rpc): support no-serialization mode, run hook tests (#2925)
6674458 - feat(rpc): log api calls into LoggerSink (#2904)
c63b706 - fix(events): avoid firing events after close/detach (#2919)
fc68614 - feat(rpc): merge DispatcherScope and Dispatcher (#2918)
ebb4c33 - test: mark 2 chromium not important win tests as failed (#2914)
982e5e3 - devops: collect artifacts from browser locations (#2913)
21807bc - feat(webkit): roll WebKit to r1306 (#2899)
a403d4b - fix(firefox): fix launching firefox without dependencies (#2900)
1cebf87 - chore(docker): skip "recommended" dependencies (#2917)
bce4b1a - chore(docker): trim some of the gstreamer dependencies (#2897)
631f76d - chore(rpc): remove union types from page and handles (#2912)
b6fd4dc - feat(rpc): merge ChannelOwner and ConnectionScope (#2911)
54f9a0d - test: update headfull chromium expectations after a recent roll (#2908)
d561465 - devops: use matrix in GHA, add non-linux rpc (#2907)
c89c30e - fix(popup): do not report frameless pages (#2910)
c21b637 - feat(webkit): bump to 1305 (#2893)
a91ec9a - feat(rpc): pass more tests (#2896)
7039409 - test: skip devtools test with USES_HOOKS (#2895)
cb8b1bc - browser(webkit): Reduce binary size of WebKit Linux build bundles (GTK and WPE) (#2880)
e90ba26 - fix(context): fire close event for persistent contexts (#2891)
8fe29fe - feat(rpc): support more chromium-specific apis (#2883)
b3ca4af - chore: misc test fixes (#2857)
6209d14 - chore: misc test fixes (#2888)
c3ac037 - test: add test to validate user-agent sanity (#2887)
b93e099 - browser(webkit, firefox): bump versions (#2866)
458aaa5 - feat(chromium): roll Chromium to r786218 (#2879)
71713c9 - fix(webkit): Fix default User-Agent (#2886)
f5911de - browser(webkit): release GTK app only if it has been referenced (#2885)
83bba08 - browser(webkit): fix touch events on mac after last roll (#2884)
040c6a6 - chore(jest): run tests with jest (#2754)
6a1bd3a - docs: add debugging docs page (#2865)
8611ee8 - chore(testrunner): typescript test files (#2751)
e97badc - docs(CONTRIBUTING.md): Add build step (#2869)
760283e - testrunner: fix default environment name (#2870)
0c80c22 - feat(rpc): plumb CDPSession (#2862)
2a86ead - chore: replace FrameTask with internal events on Frame (#2856)
35cb20d - test: unflake recorder tests (#2808)
baaa654 - browser(firefox): resize window when changing viewport (#2861)
64f5721 - browser(webkit): roll to 07-07-2020 (#2863)
6ed8b5f - chore(eslint): lint for copyrights on files (#2858)
de7969f - docs(api/input): fix typo (#2837)
9640dbf - browser(firefox): exclude browser controls from screencast (#2855)
39144dd - feat(webkit): bump to 1302 (#2852)
0380400 - chore: refactor waiting for lifecycle events (#2851)
db3439d - chore: introduce DocumentInfo (#2765)