Highlights
![pwdebug-1-4x](https://user-images.githubusercontent.com/284612/86941847-4b3e8680-c0f9-11ea-9d28-33bd9982b507.gif)
- **New debug mode**: Use the `playwright` object in browser dev tools to inspect selectors. Learn about [Playwright debugging tools](https://playwright.dev/#version=master&path=docs%2Fdebug.md&q=).
- **Playwright Docker image**: The [official Playwright docker](https://hub.docker.com/_/microsoft-playwright) image is now available on Docker Hub: `docker pull mcr.microsoft.com/playwright:bionic`
Browser Versions
- Chromium 85.0.4182.0
- Mozilla Firefox 78.0b5
- WebKit 14.0
New API methods
[`page.screenshot()`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#pagescreenshotoptions) method now supports `timeout` option
[`page.selectOption()`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#pageselectoptionselector-values-options) method now accepts `null` as values
[`page.scrollIntoViewIfNeeded()`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#elementhandlescrollintoviewifneededoptions) now accepts options to configure actionability checks
[`page.selectText()`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#elementhandleselecttextoptions) now accepts options to configure actionability checks
New Environment variables
[`PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#environment-variables) host to specify Chromium downloads
[`PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#environment-variables) host to specify Firefox downloads
[`PLAYWRIGHT_WEBKIT_DOWNLOAD_HOST`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#environment-variables) host to specify WebKit downloads
Troubleshooting
- ⚠️ WebKit now requires a new [set of dependencies](https://github.com/microsoft/playwright/blob/db3439d4117a7f3d93821e38ccbd26051b18abc7/docs/docker/Dockerfile.bionic#L17-L38) to launch on Ubuntu Bionic.
<details>
<summary><b>issues closed (54)</b></summary>
810 - [Feature] Proxy options support?
1050 - [BUG] Calling waitForNavigation twice doesn't work
1067 - [BUG] Keyboard shortcuts on mac do not work
1124 - [Question] How to update firefox default prefs
1131 - [Feature] firefox: instrument file:// process in firefox
1140 - [REGRESSION]: getting "Protocol error (Target.setDiscoverTargets): Target closed" after upgrading from v0.10 on CentOS7
1235 - [BUG] Frames show up wrong on Firefox after navigating
1245 - [BUG]: Failed to launch browser
1289 - [BUG] Overriding Location Problem
1292 - [BUG] Service Workers are flaky
1330 - [Feature] Accessor for browser type from context
1336 - Any way to have playwright use our own set of browsers by default?
1349 - [Question] Modify Context Options with launchPersistent
1421 - [BUG] Protocol error (DOM.describeNode): Cannot find context with specified id
1426 - [Feature] Debugging devtools panels
1482 - [Feature] official Docker image on Docker Hub
1523 - [Feature] `launchPersistentServer` Launches persistent storage browser server
1552 - [BUG] firefox's `node.scrollIntoView({behavior: 'instant'})` is not instant :(
1639 - [Feature] support 'private mode' In Firefox
1686 - [Feature] request.postData to return json string instead of urlsearchparams
1730 - [Question]Playwright in Kerberos environment
1848 - Playwright works locally but fails on CI
1914 - Playwright: Roadmap
1941 - [BUG] Doesn't work with mac10.13
1959 - [BUG] dumpio no longer seems to be an option when launching
1967 - [BUG] Possible issue with downloads
1985 - [Question] Attaching playwright to an existing browser window?
1997 - [Feature] Better output from failure with headless=false
2061 - [BUG] Firefox doesnt open
2131 - [Question] Socks5 Support
2134 - [Feature] page.setDeviceScaleFactor
2146 - [Question] Debugging Failed Browser Start-up in Docker Container
2182 - [Test] Firefox 'ElementHandle.boundingBox' fails in HEADFUL on bots
2196 - [BUG] context.setHTTPCredentials(null); does not clear credentials
2200 - [BUG] Click operation doesn't timeout when there is an alert
2244 - [BUG] Throwing unhandled rejection errors when Firefox navigates to neterr page
2261 - [Feature] Auto close browser when launcher process exits
2270 - [Feature] Add Playwright to DevDocs.io
2292 - [BUG] Unable to switch frames when using chromium
2316 - [BUG] Bypass CSP bit can be cached on Firefox
2344 - [Feature] Chromium does not show file chooser dialog
2354 - [Feature] Make browser binaries available for manual installations
2379 - [BUG] Firefox cross-page promises are not resolved
2429 - [BUG] run-workers not working with docker container
2437 - [BUG] The official Docker image doesn't work with non root user
2451 - [BUG] Firefox page.goto broken for sites with service worker
2510 - [BUG] incorrect focus behavior for webcomponents with delegate focus option
2527 - [BUG]Waitforselector fail to read the element in execution but works when debugging.
2528 - [Question] - How can you obtain the current HTML content of the page you are on?
2537 - [BUG] addInitScript and exposeFunction/Binding don't work for new OOPIFs
2539 - [BUG] Firefox doesn't install when using a installler made with electron-builder.
2540 - [BUG] playwright-core has no main entry
2560 - [Question] Succint list of pro and cons versus Cypress
2563 - [Question] How to access Print dialog?
</details>
<details>
<summary><b>commits (188)</b></summary>
15ddb5d3 - chore: update webkit version (2804)
ef125e13 - chore: cut v1.2 (2850)
ea9b82d2 - browser(webkit): properly disconnect signal handlers when closing browser (2849)
fc18f2f3 - browser(firefox): support screencast frame size and scale configuration (2847)
ac2185a9 - test: update http credentials tests (2806)
06957e8e - feat(firefox): bump to 1122 (2844)
6bbe7eb0 - chore(rpc): inline options parameter in all rpc channels (2842)
8d111a88 - docs(readme): add locale to geo example (2845)
241d39f9 - chore(rpc): exit server upon pipe disconnect (2836)
2540805b - chore(rpc): misc serializer improvements (2832)
7f60c4df - feat(webkit): roll webkit to r1301 (2827)
3dd09f04 - browser(webkit): close context menu on Windows when closing page (2825)
6aef045f - browser(firefox): create new window for each new page (2823)
b1b6d3f5 - devops: add signature to BUILD_NUMBER to force rebaseline (2810)
605257b1 - browser(firefox): Win build fix (2822)
05b019f1 - reland: testrunner: make environment a simple class (2812)
024cb1dd - browser(firefox): basic screencast implementation for GTK (2818)
6329cbbb - chore: remove dead code from test (2819)
3d403cb2 - browser(webkit): force wpe to use the complex text path (2801)
756d5373 - feat(webkit): roll WebKit to r1298 (2813)
f484b20e - fix(recorder): allow node to close gracefully (2817)
cb0c037e - test(chromium): enable selectall test on mac (2788)
f9f3aeb0 - test: add failing test for context menus that prevent browser close (2811)
5484217c - chore: make //utils/roll_browser.js executable
43cdb3ba - browser(webkit): revert 2755 (2809)
19abc9bd - fix(dialogs): let click timeout, log information about dialogs (2781)
0d16b16e - fix(firefox): unskip worker error test (2805)
e12e2451 - test: disable flaky test on chromium mac (2807)
9d6eaadb - fix(navigation): ensure that goBack/goForward work with file urls (2792)
c15dc94f - chore(rpc): explicitly create page dispatcher (2799)
d484e04a - test(route): add another route test (2800)
14162f89 - browser(webkit): let web page close when it has open context menu (2802)
c188118d - browser(webkit): do not show popup menu in mac headless (2803)
e8e45e84 - feat(dom): migrate innerText, innerHTML and getAttribute to tasks (2782)
ff1fe3ac - fix(close): actually mark the page as closing (2798)
5c4751d5 - chore: generate protocol during browser roll (2719)
991e8d42 - browser(firefox): report errors from workers (2797)
c25fc495 - chore(rpc): scope client-side handles (2796)
c4e3ed85 - browser(firefox): handle the case when inner window is restored from history (2791)
e467ea57 - revert: testrunner: make environment a simple class (2769) (2790)
bd8e0a7b - feat(webkit): roll webkit to r1295 (2785)
e480ec3f - feat(chromium): roll to r782078 (2714)
cd180474 - browser(webkit): don't show context menus for headless windows (2755)
6afb38d3 - devops: remove folder creation in github actions (2779)
95538e73 - chore(rpc): move classes around, fix tests, respect dispatcher scopes (2784)
87516cb3 - chore(rpc): make dispatcher creation and lookup explicit (2783)
10a9eef8 - chore(rpc): add a channel bot (2773)
922cbe67 - chore: roll https-proxy-agent to v5 (2777)
d6338b0c - docs(webkit): update core dump analisys instructions (2778)
f00fc076 - chore: fix utils/check_availability.js
1605cb45 - testrunner: make environment a simple class (2769)
c6df8fd5 - browser(webkit): abort interception if loader reached termial state (2776)
55a07dbf - fix: follow-up with offline comments on implementation of deprecation (2770)
e29f7b9f - chore(rpc): support workers, file chooser, browser server (2766)
5bb018e0 - chore(rpc): attribute calles to page, ignore USES_HOOKS (2764)
3a7d629c - chore(rpc): pass more network tests (2762)
0963c197 - chore: deprecate method `context.setHTTPCredentials()` (2763)
38236b4f - fix(close): ensure close() can be called twice (2744)
1fa9d309 - fix(evaluate): awaitPromise when Promise is overwritten (2759)
e154e083 - docs(ci): fix gitlab setup
c8076121 - docs: add new doc for multi-page scenarios (2737)
69127ad8 - docs(docker): update to use official image (2760)
28a9f55a - chore(devops): use official docker image on circleci (2756)
18f9b4a2 - test: add failing test for navigation corner cases (2746)
e920fde9 - chore(rpc): bootstrap demo for rpc (2741)
4e94bdab - chore(rpc): serialize rpc into actual wire string (2740)
3e33523e - chore(rpc): clear the browsercontext test spec (2739)
db12ddeb - chore(rpc): clear the page test spec (2736)
aad6301a - docs(ci): update intro, caching section, add gitlab (2735)
0cb5e95b - docs(frames): improve snippet to get frame (2734)
6393407a - chore(rpc): support downloads, dialogs, persistent context (2733)
b54303a3 - fix(textContent): make page.textContent(selector) atomic (2717)
43f70ab9 - test: add more failing tests with react recycle (2731)
02f75017 - chore(rpc): strongly-type the initializer, remove __init__ phase (2729)
18d6140d - chore(rpc): support routes and bindings (2725)
064a0a11 - fix(webkit): do not swallow errors when returning by value (2723)
71618a9e - chore(rpc): implement input, a11y, console (2722)
ab6a6c9b - chore: run most actions through page._runAbortableTask (2721)
bab68332 - chore: introduce the experimental rpc implementation (2720)
5d5cf26a - fix(logs): streaming logs from InjectedScriptPoll without exception (2712)
807dc1f3 - fix(crash): improve documentation for crash, reject waitForEvent (2694)
bc305077 - chore: prepare library types for rpc (2706)
1865c568 - testrunner: support globalSetup and globalTeardown hooks. (2686)
f111974a - chore: prepare parsed selectors to more tasks (2696)
39ce35e1 - fix(errors): strict error handling around element operations (2567)
8fbd6470 - fix(playwright-core): bring back index.js in playwright-core (2691)
355305d3 - feat(screenshot): accept timeout, migrate to Progress, wait for visible (2679)
924a8841 - docs: linux core dump instructions (2690)
4af8c683 - docs: improve snippets for console logs (2684)
07dbd0ba - testrunner: teach runHook to accept hook arguments (2682)
22b4a6bd - devops: enable coredumps for headful tests (2678)
c61e2d6c - testrunner: drop nested test environments (2681)
fca514d7 - chore: move non-trivial types out of types.ts (2680)
d0a6e1a6 - fix(dom): make selectText and scrollIntoViewIfNeeded wait for visible (2628)
a8eaee31 - docs: add Moon to showcase.md (2677)
5a525db0 - feat(firefox): bump firefox to 1116 (2668)
6cec2dfb - docs: add assertions doc (2585)
68706783 - browser(firefox): do not fail when decoding large responses (2671)
3d49af25 - browser(firefox): fix redirect interception (2672)
bb344180 - devops: do cache busting for APT (2656)
40b1a146 - browser(webkit): support screencast scale on Mac (2655)
9000ccb3 - fix(click): don't timeout when innerWidth is modified (2669)
98011351 - browser(webkit): screencast on windows with accelerated compositing (2670)
7af20162 - chore(webkit): add libvpx Windows build instructions (2649)
2fa32f7e - browser(firefox): rewrite network instrumentation (2638)
eac7dab8 - fix(cors): allow intercepting cors requests on chromium (2643)
2251f9be - feat(webkit): bump to 1290 (2652)
e0ac11c0 - browser(webkit): fix loader after terminal state access (2654)
2bfb675c - browser(webkit): make material icons render on Windows (2650)
5043a36f - browser(webkit): exclude gstreamer, its plugins and libdrm from webkit distribution (2541)
c8a963d2 - feat(webkit): bump to 1289 (2639)
5c6c6591 - fix(webkit): update Docker file to include gstreamer (2636)
53f7f4e4 - test: add redirect+extraHTTPHeaders test (2637)
d0336ea5 - fix(network): disallow intercepting redirects (2617)
2511cb4c - devops: drop playwright-electron dependency on playwright-core (2634)
636e2744 - browser(webkit): revert WebCore agent and frame-based implementation (2635)
20b23cd2 - docs: fixed various typos (2633)
38089aba - browser(webkit): support screencast on Mac (2631)
05863bff - feat(firefox): roll to r1112 (2629)
f61e8529 - docs: update docs for per-browser download hosts (2630)
fb84e19b - feat(types): autocomplete for default devices (2198)
b88fabab - test: add another test for browserContext.addInitScript (2285)
63924d9a - feat(install/download-hosts): allow multiple per browser (2452)
971bd889 - fix(chromium): do not bring page to front before screenshot (2614)
c544bffe - browser(firefox): stop faking intercepting redirects (2618)
02704e08 - Update upstream_status.md
f581e848 - fix(css selector): handle missing spaces between [] and > (2612)
082bb3c3 - browser(firefox): rely on upstream permission separation per contexts (2613)
090d4506 - docs(core-concepts.md): fix typos (2608)
cc84506c - feat(electron): add a test for clipboard access (2606)
4834e565 - fix(firefox): bump firefox and fix network with service worker (2610)
f9633ea9 - fix(scrollIntoView): ensure similar behavior across browsers, handle errors (2599)
7ba72ce3 - browser(webkit): support screencast on Windows (2590)
277d50e3 - feat(webkit): roll WebKit to 1286 - interception (2601)
dab715b1 - browser(webkit): follow-up to the roll, fix the merge (2600)
ab5f5c8b - browser(firefox): another way to report elements without layout object (2597)
03690627 - browser(webkit): roll to Tot 6/16/2020 (2596)
9bc7139c - browser(webkit): fix windows and mac unified builds after roll (2595)
f2af30cf - browser(firefox): properly instrument requests intercepted by service worker (2594)
c220fc7f - chore(logs): rework logs for simplicity (2592)
4b2efd6e - browser(webkit): reference GApplication to keep browser alive on GTK (2593)
898f1157 - browser(webkit): print context leaks when closing browser (2591)
e6a4cff0 - browser(webkit): roll to 06/15 (2581)
59d0f872 - test(recorder): add recorder sanity tests (2582)
9e7ea3ff - browser(firefox): Page.scrollIntoViewIfNeeded throws for invisible elements (2584)
1bc04a08 - docs: using DEBUG=pw:api (2578)
1c7a8952 - chore(cli): add recording mode (2579)
fd9b1031 - docs: add actionability doc (2577)
f2c47b1d - feat(cli): introduce basic playwright CLI tool (2571)
456c865f - docs(playwright-electron/README.md): fix comment mistake (2568)
61b11252 - chore(debug): various debug mode improvements (2561)
2659910b - docs: make environment vars snippets cross-platform (2564)
6530c18a - docs: improvements to ci provider configs (2565)
98544381 - test: disable flaky cookie test on Chromium Win (2562)
d4c46686 - chore: explicitly plumb various errors through the retries (2554)
39019e88 - test: unflake interception test (2558)
c4e8720e - feat(debug): generate preview for ElementHandle (2549)
defeeb9c - test: await all promises in upload test (2557)
1bf9e65e - fix(log): include log name in progress recording (2550)
fb0b910e - Bump to 1280 (2544)
49cb96c4 - devops: enable core dumps in the subshell (2555)
bda6203a - browser(webkit): configure video scale (2553)
894826de - chore: form the debug script for authoring hints / helpers (2551)
48088222 - devops: enable core dumps on Linux CI (2552)
7ddf6641 - test: add a failing test with React rerender (2545)
dadfe3e8 - browser(webkit): add more missing libraries to WPE build (2546)
e287f194 - feat(debug): add basic recording helper infra (2533)
5e97acde - fix(oopif): make Page.addInitScript and Page.exposeBinding work for oopifs (2542)
0e62d727 - browser(webkit): add missing wayland library to WPE build (2543)
969803fa - feat(browser): roll Firefox to r1108 (2532)
855ffa46 - browser(webkit): fix windows build (2536)
17433d18 - chore: verify launch options (2530)
de893c65 - browser(webkit): speculative downloads-related crash fix (2535)
6f048438 - browser(webkit): preserve compositing mode in WPE web process (2508)
89d1b52f - chore: revert atomic install (2534)
c99f0d1f - feat(debug): more logs while waiting for stable, enabled, etc. (2531)
903de258 - chore(websocket): extract common socket part (2506)
1bb33650 - chore: remove ExtendedEventEmitter and inline waitForEvent (2529)
8ee19d53 - feature(webkit): roll WebKit to 1273 (2514)
d7f867db - browser(webkit): screencast for WPE (2516)
e3f34f6a - fix(selectOption): allow passing null to unselect all (2405)
24316ad2 - chore: fix emojis for CR and FF in Dockerfile (2522)
3bff1368 - chore: bump firefox build number
31da3d37 - browser(firefox): roll Firefox to TOT beta branch as of Jun 9, 2020 (2520)
4d069dda - feat: avoid side effects after progress aborts (2518)
4faa1306 - test: dump all logs in DEBUGP mode (2517)
6d8f39b3 - browser(webkit): return proper error upon missing page proxy (2519)
80705ff5 - chore: simplify logging a bit (2512)
</details>