Releases: microsoft/playwright
v1.14.0
🎭 Playwright Library
⚡️ New "strict" mode
Selector ambiguity is a common problem in automation testing. "strict" mode
ensures that your selector points to a single element and throws otherwise.
Pass strict: true into your action calls to opt in.
// This will throw if you have more than one button!
await page.click('button', { strict: true });📍 New Locators API
Locator represents a view to the element(s) on the page. It captures the logic sufficient to retrieve the element at any given moment.
The difference between the Locator and ElementHandle is that the latter points to a particular element, while Locator captures the logic of how to retrieve that element.
Also, locators are "strict" by default!
const locator = page.locator('button');
await locator.click();Learn more in the documentation.
🧩 Experimental React and Vue selector engines
React and Vue selectors allow selecting elements by its component name and/or property values. The syntax is very similar to attribute selectors and supports all attribute selector operators.
await page.click('_react=SubmitButton[enabled=true]');
await page.click('_vue=submit-button[enabled=true]');Learn more in the react selectors documentation and the vue selectors documentation.
✨ New nth and visible selector engines
nthselector engine is equivalent to the:nth-matchpseudo class, but could be combined with other selector engines.visibleselector engine is equivalent to the:visiblepseudo class, but could be combined with other selector engines.
// select the first button among all buttons
await button.click('button >> nth=0');
// or if you are using locators, you can use first(), nth() and last()
await page.locator('button').first().click();
// click a visible button
await button.click('button >> visible=true');🎭 Playwright Test
✅ Web-First Assertions
expect now supports lots of new web-first assertions.
Consider the following example:
await expect(page.locator('.status')).toHaveText('Submitted');Playwright Test will be re-testing the node with the selector .status until fetched Node has the "Submitted" text. It will be re-fetching the node and checking it over and over, until the condition is met or until the timeout is reached. You can either pass this timeout or configure it once via the testProject.expect value in test config.
By default, the timeout for assertions is not set, so it'll wait forever, until the whole test times out.
List of all new assertions:
expect(locator).toBeChecked()expect(locator).toBeDisabled()expect(locator).toBeEditable()expect(locator).toBeEmpty()expect(locator).toBeEnabled()expect(locator).toBeFocused()expect(locator).toBeHidden()expect(locator).toBeVisible()expect(locator).toContainText(text, options?)expect(locator).toHaveAttribute(name, value)expect(locator).toHaveClass(expected)expect(locator).toHaveCount(count)expect(locator).toHaveCSS(name, value)expect(locator).toHaveId(id)expect(locator).toHaveJSProperty(name, value)expect(locator).toHaveText(expected, options)expect(page).toHaveTitle(title)expect(page).toHaveURL(url)expect(locator).toHaveValue(value)
⛓ Serial mode with describe.serial
Declares a group of tests that should always be run serially. If one of the tests fails, all subsequent tests are skipped. All tests in a group are retried together.
test.describe.serial('group', () => {
test('runs first', async ({ page }) => { /* ... */ });
test('runs second', async ({ page }) => { /* ... */ });
});Learn more in the documentation.
🐾 Steps API with test.step
Split long tests into multiple steps using test.step() API:
import { test, expect } from '@playwright/test';
test('test', async ({ page }) => {
await test.step('Log in', async () => {
// ...
});
await test.step('news feed', async () => {
// ...
});
});Step information is exposed in reporters API.
🌎 Launch web server before running tests
To launch a server during the tests, use the webServer option in the configuration file. The server will wait for a given port to be available before running the tests, and the port will be passed over to Playwright as a baseURL when creating a context.
// playwright.config.ts
import { PlaywrightTestConfig } from '@playwright/test';
const config: PlaywrightTestConfig = {
webServer: {
command: 'npm run start', // command to launch
port: 3000, // port to await for
timeout: 120 * 1000,
reuseExistingServer: !process.env.CI,
},
};
export default config;Learn more in the documentation.
Browser Versions
- Chromium 94.0.4595.0
- Mozilla Firefox 91.0
- WebKit 15.0
This version of Playwright was also tested against the following stable channels:
- Google Chrome 92
- Microsoft Edge 92
v1.13.1
Highlights
This patch includes bug fixes for the following issues:
#7800 - [Bug]: empty screen when opening trace.zip
#7785 - [Bug]: Channel installation requires curl/wget on the system
#7746 - [Bug]: global use is not working to launch firefox or webkit
#7849 - [Bug]: Setting the current shard through config uses n+1 instead
Browser Versions
- Chromium 93.0.4576.0
- Mozilla Firefox 90.0
- WebKit 14.2
v1.13.0
Playwright Test
- ⚡️ Introducing Reporter API which is already used to create an Allure Playwright reporter.
- ⛺️ New
baseURLfixture to support relative paths in tests.
Playwright
- 🖖 Programmatic drag-and-drop support via the
page.dragAndDrop()API. - 🔎 Enhanced HAR with body sizes for requests and responses. Use via
recordHaroption inbrowser.newContext().
Tools
- Playwright Trace Viewer now shows parameters, returned values and
console.log()calls. - Playwright Inspector can generate Playwright Test tests.
New and Overhauled Guides
- Intro
- Authentication
- Chome Extensions
- Playwright Test Configuration
- Playwright Test Annotations
- Playwright Test Fixtures
Browser Versions
- Chromium 93.0.4576.0
- Mozilla Firefox 90.0
- WebKit 14.2
New Playwright APIs
- new
baseURLoption inbrowser.newContext()andbrowser.newPage() response.securityDetails()andresponse.serverAddr()page.dragAndDrop()andframe.dragAndDrop()download.cancel()page.inputValue(),frame.inputValue()andelementHandle.inputValue()- new
forceoption inpage.fill(),frame.fill(), andelementHandle.fill() - new
forceoption inpage.selectOption(),frame.selectOption(), andelementHandle.selectOption()
v1.12.3
Highlights
This patch release includes bug fixes for the following issues:
#7085 - [BUG] Traceviewer screens are not recorded well when using constructable stylesheets
#7093 - Folder for a test-case is getting generated in test-results even if Test Case Passes when properties are given on Failure
#7099 - [test-runner] Missing types for the expect library
#7124 - [Test Runner] config.outputDir must be an absolute path
#7141 - [Feature] Options for video resolution
#7163 - [Test runner] artifacts are removed
#7223 - [BUG] test-runner viewport can't be null
#7284 - [BUG] incorrect @playwright/test typings for toMatchSnapshot/toMatchInlineSnapshot/etc
#7304 - [BUG] Snapshots are not captured if there is an animation at the beginning
#7326 - [BUG] When PW timeouts, last trace action does not get collected[BUG] When PW timeouts, last trace action does not get collected
Browser Versions
- Chromium 93.0.4530.0
- Mozilla Firefox 89.0
- WebKit 14.2
This version of Playwright was also tested against the following stable channels:
- Google Chrome 91
- Microsoft Edge 91
v1.12.2
Highlights
This patch release includes bugfixes for the following issues:
- #7015 - [BUG] Firefox: strange undefined toJSON property on JS objects
- #7004 - [test runner] Error: Error while reading global-setup.ts: Cannot find module 'global-setup.ts'
- #7048 - [BUG] Dialogs cannot be dismissed if tracing is on in Chromium or Webkit
- #7058 - [BUG] Getting no video frame error for mobile chrome
- #7020 - [Feature] Codegen should be able to emit @playwright/test syntax
Browser Versions
- Chromium 93.0.4530.0
- Mozilla Firefox 89.0
- WebKit 14.2
This version of Playwright was also tested against the following stable channels:
- Google Chrome 91
- Microsoft Edge 91
v1.12.1
Highlights
This patch includes bug fixes for the following issues:
#6984 - slowMo does not exist in type 'Fixtures<{}, {}, PlaywrightTestOptions, PlaywrightWorkerOptions>'
#6982 - [trace viewer] srcset sanitization removes space between values, hence breaks the links
#6981 - [BUG] Getting "Please install @playwright/test package to use Playwright Test."
Browser Versions
- Chromium 93.0.4530.0
- Mozilla Firefox 89.0
- WebKit 14.2
This version of Playwright was also tested against the following stable channels:
- Google Chrome 91
- Microsoft Edge 91
v1.12.0
⚡️ Introducing Playwright Test
Playwright Test is a new test runner built from scratch by Playwright team specifically to accommodate end-to-end testing needs:
- Run tests across all browsers.
- Execute tests in parallel.
- Enjoy context isolation and sensible defaults out of the box.
- Capture traces, videos, screenshots and other artifacts on failure.
- Infinitely extensible with fixtures.
Installation:
npm i -D @playwright/testSimple test tests/foo.spec.ts:
import { test, expect } from '@playwright/test';
test('basic test', async ({ page }) => {
await page.goto('https://playwright.dev/');
const name = await page.innerText('.navbar__title');
expect(name).toBe('Playwright');
});Running:
npx playwright test👉 Read more in testrunner documentation.
🧟♂️ Introducing Playwright Trace & TraceViewer
Playwright TraceViewer is a new GUI tool that helps exploring recorded Playwright traces after the script ran. Playwright traces let you examine:
- page DOM before and after each Playwright action
- page rendering before and after each Playwright action
- browse network during script execution
Traces are recorded using the new browserContext.tracing API:
const browser = await chromium.launch();
const context = await browser.newContext();
// Start tracing before creating / navigating a page.
await context.tracing.start({ screenshots: true, snapshots: true });
const page = await context.newPage();
await page.goto('https://playwright.dev');
// Stop tracing and export it into a zip archive.
await context.tracing.stop({ path: 'trace.zip' });Traces are examined later with the Playwright CLI:
npx playwright show-trace trace.zipThat will open the following GUI:
👉 Read more in trace viewer documentation.
Browser Versions
- Chromium 93.0.4530.0
- Mozilla Firefox 89.0
- WebKit 14.2
This version of Playwright was also tested against the following stable channels:
- Google Chrome 91
- Microsoft Edge 91
New APIs
reducedMotionoption inpage.emulateMedia(),browserType.launchPersistentContext(),browser.newContext()andbrowser.newPage()browserContext.on('request')browserContext.on('requestfailed')browserContext.on('requestfinished')browserContext.on('response')tracesDiroption inbrowserType.launch()andbrowserType.launchPersistentContext()- new
browserContext.tracingAPI namespace - new
download.page()method - new options in
electron.launch():acceptDownloadsbypassCSPcolorSchemeextraHTTPHeadersgeolocationhttpCredentials
Issues Closed (41)
#1094 - [Feature] drag and drop
#3320 - [Feature] Emulate reduced motion media query
#4054 - [REGRESSION]: chromium.connect does not work with vanilla CDP servers anymore
#5189 - [Bug] Codegen generates goto for page click
#4535 - [Feature] page.waitForResponse support for async predicate function
#4704 - [BUG] Unable to upload big file on firefox.
#4752 - [Feature] export the screenshot options type
#5136 - [BUG] Yarn install (yarn 2) does not install chromium from time to time.
#5151 - [Question] Playwright + Firefox: How to disable download prompt and allows it to save by default?
#5446 - [BUG] Use up to date Chromium version in device User-Agents
#5501 - [BUG] Can't run Playwright in Nix
#5510 - [Feature] Improve documentation, document returned type for all methods
#5537 - [BUG] webkit reports incorrect download url
#5542 - [BUG] HTML response is null on requestfinished when opening popup
#5617 - [BUG] [Codegen] Page click recorded as click + goto
#5695 - [BUG] Uploading executable file in firefox browser
#5753 - [Question] - Page.click fails
#5775 - [Question] Firefox Error: NS_BINDING_ABORTED [Question]
#5947 - [Question] about downloads with launchPersistentContext
#5962 - [BUG?] Download promises don't resolve when using Chromium instead of Firefox in headful mode
#6026 - [BUG] Node.js 16 results in DeprecationWarning: Use of deprecated folder mapping "./" in the "exports" field with file import
#6137 - Chromium Issue while loading a page
#6239 - [BUG] Blank screenshot saved after test failure in CI
#6240 - [Question] Can't wait for an element to be visible when it is overlapped with other elements in frontend
#6264 - [BUG?] Mouse actions produce different result depending on slowMo setting
#6340 - [Feature] Capture network requests on BrowserContext
#6373 - Stream or capture Video into buffer [Question]
#6390 - [devops] workaround Chromium windows issues with swiftshader
#6403 - [BUG] Chromium - Playwright not intercepting importScripts requests in WebWorker
#6415 - [BUG] Browsers will not start in GitLab pipeline
#6431 - [BUG] Device emulation not working with CLI
#6439 - [BUG] screencast tests fail on Mac10.14
#6447 - [Question] How to use map function in $$
#6453 - [BUG] Firefox / Webkit: Unable to click element in iframe (Frame has been detached)
#6460 - getDisplayMedia in headless
#6469 - [BUG] Screencast & video metabug
#6473 - [Feature] allow custom args for ffmpeg in VideoRecorder.ts
#6477 - [BUG] webkit can disable mouse when evaluating specified JavaScript code
#6480 - [Feature] on('selector' ...
#6483 - [Question] How to set path for local exe?
#6485 - [BUG] Cannot download a file in /tmp/ with a Snap browser
Commits (342)
d22fa86 - devops: update trigger for firefox beta builder
12d8c54 - chore: swap firefox-stable and firefox (#6950)
bd193ca - feat: nicer stub for WebKit on MacOS 10.14 (#6948)
55da16d - Revert "feat: switch to the Firefox Stable equivalent by default (#6926)" (#6947)
a1e8d2d - feat: switch to the Firefox Stable equivalent by default (#6926)
15668f0 - chore: make WebKit @ MacOS 10.14 error more prominent (#6943)
d0eaec3 - chore: clarify that we download Playwright browser builds (#6938)
334096e - docs(pom): fixed JS example which contained TS (#6917)
52878bb - docs: use proper option name for --workers (#6942)
99ec32a - chore: more doc nits (#6937)
8960584 - fix(chromium): drag and drop works in chromium (#6207)
42a9e4a - docs(mobile): make experimental Android support more present (#6932)
8c13f67 - fix(test runner): remove folio/jest namespaces in expect matchers (#6930)
cfd49b5 - feat: support npx playwright install msedge (#6861)
46a0213 - chore: remove internal uses of "folio" (#6931)
b556ee6 - chore: brush up playwright-test types (#6928)
f745bf1 - chore: bring in folio source (#6923)
d4e50be - fix: do not install media pack on non-server windows (#6925)
4b5ad33 - doc: fix first .net script (#6922)
82041b2 - test: roll to [email protected] (#6918)
f441755 - docs(dotnet): add test runner docs (#6919)
69b7346 - fix: various test-related fixes (#6916)
a836466 - fix(tracing): error handling (#6888)
b5ac393 - docs(showcase): fixed typo in showcase.md (#6915)
9ad507d - doc(test): pass through test docs (#6914)
ec2b6a7 - test: add a glob test (#6911)
ff3ad7a - fix(android): to not call Browser.setDownloadBehavior (#6913)
9142d8c - docs: fix that test-runner is not included (#6912)
233f187 - feat(inspector): remove snapshots (#6909)
a96491c - feat(downloads): subscribe to download events in Browser domain instead of Page (#6082)
e37c078 - test(nonStallingRawEvaluateInExistingMainContext): fix broken test (#6908)
21b00d0 - test: roll to [email protected] (#6897)
85786b1 - feat(trace viewer): fix UI issues (#6890)
cfcf6a8 - feat: use WebKit stub on MacOS 10.14 (#6892)
657aa04 - browser(webkit): import <optional> to fix win compilation (#6895)
abc66c6 - docs(api): add missing callback parameter to waitForRequestFinished (#6893)
2663c0b - browser(webkit): import <optional> to fix mac compilation (#6894)
cce62da - browser(webkit): roll to 06/03 (#6889)
fb0004c - feat(webkit): bump to 1492 (#6887)
8a81b11 - devops: replace WebKit for MacOS 10.14 build with a stub (#6886)
401dcfd - chore: do not use a subshell hack when using XVFB (#6884)
f264e85 - chore: bump dependency to fix vu...
v1.11.1
Highlights
This patch includes bug fixes across all languages for the following issues:
- microsoft/playwright-python#679 - can't get browser's context pages after connect_over_cdp
- microsoft/playwright-java#432 - [Bug] Videos are not complete when an exception is thrown
Browser Versions
- Chromium 92.0.4498.0
- Mozilla Firefox 89.0b6
- WebKit 14.2
This version of Playwright was also tested against the following stable channels:
- Google Chrome 90
- Microsoft Edge 90
Issues Closed (2)
microsoft/playwright-python#679 - can't get browser's context pages after connect_over_cdp
microsoft/playwright-java#432 - [Bug] Videos are not complete when an exception is thrown
v1.11.0
Highlights
🎥 New video: Playwright: A New Test Automation Framework for the Modern Web (slides)
- We talked about Playwright
- Showed engineering work behind the scenes
- Did live demos with new features ✨
- Special thanks to applitools for hosting the event and inviting us!
Browser Versions
- Chromium 92.0.4498.0
- Mozilla Firefox 89.0b6
- WebKit 14.2
This version of Playwright was also tested against the following stable channels:
- Google Chrome 90
- Microsoft Edge 90
New APIs
- support for async predicates across the API in methods such as [
page.waitForEvent()], [page.waitForRequest()] and others - new emulation devices: Galaxy S8, Galaxy S9+, Galaxy Tab S4, Pixel 3, Pixel 4
- new methods:
- [
page.waitForURL()] to await navigations to URL - [
video.delete()] and [video.saveAs()] to manage screen recording - [
electronApplication.browserWindow()] to access browser window
- [
- new options:
screenoption in the [browser.newContext()] method to emulatewindow.screendimensionspositionoption in [page.check()] and [page.uncheck()] methodstrialoption to dry-run actions in [page.check()], [page.uncheck()], [page.click()], [page.dblclick()], [page.hover()] and [page.tap()]headersoption in [browserType.connect()]
Issues Closed (45)
#2370 - [Feature] selector improvements proposals
#2995 - [Question] Is it possible to customize both user-data-dir and websocket port
#3933 - [Question] logger stderr full output
#4610 - [Question] Is there a way to access the playwright object in dev tools in browsers launched within launch()?
#4740 - [BUG] [Firefox] TypeError: browser.webProgress is undefined / assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
#4761 - Chromium: await context.newPage() hangs forever, addressed with --disable-gpu arg
#5105 - Feature Option to install system dependencies
#5523 - "page-screenshot.spec.ts - should work with a mobile viewport" is flaky on Chromium
#5591 - [Docker] Follow up in docs
#5614 - [BUG] Drop support for Node.js 10 (2021-04-30)
#5687 - [BUG] page.goto: Navigation failed because page crashed!
#5693 - [Feature] breakdown PWDEBUG flags
#5762 - [BUG] iframe inside an iframe is not visible
#5765 - [BUG] click visibility check fails for visible element
#5779 - [Question]/[Feature Request] Taking a screenshot of the element without shadow
#5796 - [BUG] The First Script cannot launch browsers
#5815 - [BUG] inconsistency with OOPIF
#5816 - [Feature] Inspector Recorder Raw Mouse/Screenshot tools
#5833 - [REGRESSION]: support mac 10.14 on webkit
#5839 - [BUG] Firefox is too slow with going to page and getting content
#5840 - [Question] Docs for debugging: PWDEBUG=1, page.pause() and debugger;
#5845 - [Internal] close browsers via closing pipes in processLauncher
#5846 - [Internal] do not collect navigation signals while waiting for element state
#5853 - [Feature] Redirect video stream to new path
#5854 - [BUG] codegen inserts AltGraph key press
#5858 - [BUG] <button> in shadow DOM not working with click()
#5862 - [BUG] Error: ENOENT: no such file or directory, open '/var/task/node_modules/playwright-core/browsers.json' on Vercel with Next.js
#5872 - [Feature] Running Playwright on non-patched Firefox and Webkit
#5874 - Any plans for a Ruby Library?
#5875 - [BUG] 'hidden' on web component still resolves a child in the shadow root as visible
#5888 - [BUG] Click not working while using htmx
#5890 - [BUG]
#5893 - Missing Dependencies preventing playwright launch
#5894 - [BUG] action works on Safari, but fails in WebKit
#5895 - [Feature] Support sites hosted on cloudflare.com
#5896 - [Feature] waitForURL
#5897 - [Question] switch different firefox/chrome version
#5901 - [BUG] browserType.launch: Host system is missing dependencies! Missing libraries are: libenchant.so.1
#5914 - [BUG] Console errors while using Playwright Inspector causes tests to fail
#5915 - [BUG] : Codegen on loading a new page showing error - attaching Video
#5916 - [BUG] : Chromium Issue while loading a page
#5918 - [Feature] pass config values to chromium
#5921 - [Feature] Ability to provide postData & method properties in page.goto.
#5929 - [BUG] Control+Shift+ArrowLeft fails on contenteditables with FF + Linux
#5936 - [Feature] page.$: add waitForSelector as optional parameter
Commits (285)
f427d43 - chore: mark v1.11.0
791443d - feat(webkit): roll to r1472 (#6425)
477b93b - feat(firefox-stable): bump to 1245 (#6424)
8737207 - feat(devices): add more Android device descriptions (#6413)
765d749 - chore(ff): remove some dead code (#6423)
9e36f5c - docs(consoleMessage): add missing console message comments (#6320)
90de864 - docs(dotnet): introduce separate csharp viewport option (#6198)
42a5566 - fix(types): fix waitForSelector typing to not union null when appropriate (#6344)
8d66edf - browser(webkit): roll to safari-612.1.13-branch (#6422)
9b8dc4a - browser(webkit): fix Ubuntu18, make vp9 build hermetic (#6421)
47cf9c3 - feat(chromium): bump to r878941 (#6216)
ab850af - fix: support relative downloadsPath directory for downloads (#6402)
5509527 - devops: do a full browser checkout by default on Dev machines (#6411)
ee835fb - fix(webkit): fix screencast compilation on win (#6412)
77c1020 - devops: re-use firefox checkout for firefox-stable (#6410)
5c51961 - browser(firefox-stable): cherry pick recent changes from browser_patches/firefox (#6409)
14ebcfd - docs: update fill/selectOption docs to mention label retargeting (#6406)
fc9454e - browser(webkit): implement screencast (#6404)
86df1df - test: update download test expectations (#6394)
5326f39 - browser(chromium): build 878941 that reverts shader changes (#6407)
1a58281 - browser(firefox): don't record video outside the viewport (#6361)
2945dac - devops: fixed broken GitHub Actions workflow (#6399)
b8eb2b8 - feat(firefox-beta): roll Firefox to beta 89.0b6 (1250) (#6393)
ce7a72b2 - test: disable certain screencast tests on Firefox. (#6396)
4e0e13c - browser(firefox-beta): roll Firefox to beta 89.0b8 - May 2, 2021 (#6397)
4cd5673 - chore: add debugging information on bots to trace unzipping (#6395)
653d483 - docs: add firefox-stable channel documentation (#6328)
fe94dc5 - docs: expose tracing API in java (#6387)
6219042 - fix(webkit): swallow requests from detached frames (#6242)
fd42539 - devops: fix swiftshader on Chromium Windows (#6391)
dddfbaa - chore(dotnet): run dotnet format after generation (#6376)
1a859eb - chore(electron): fix node/browser race conditions, expose browser window asynchronously (#6381)
6da7e70 - chore: regenerate types after non-clean merge Follow-up to #6379
af92565 - Update class-page example code (#6379)
07fb81a - fix(launcher): improve error message for missing channel distribution (#6380)
018f314 - fix(electron): deliver promised _nodeElectronHandle (#6348)
de21a94 - test: roll to [email protected] (#6366)
29164a6 - devops: use Node.js 12 on Windows bots (#6377)
6ce56dd - test(accessibility): remove and update tests for new chromium (#6372)
5e8d9d2 - feat(firefox): roll Firefox to r1248 @ v89.0b2 (#6281)
a59a494 - chore: drop support for Node.js 10 (#6371)
7405655 - docs(cli): add install-deps command and reference to it (#6374)
934bc67 - test(tracing): start adding tracing tests (#6369)
9da718d - docs: change the position argument location in check functions (#6191)
ba652c1 - docs: inline parsing should honor template location (#6289)
bb84539 - chore(dotnet): don't generate setters on interfaces (#6293)
d9015b9 - chore(dotnet): translate Javascript words to csharp (#6321)
dec9736 - docs(page): add missing docs on emulateMedia (#6322)
6c04b82 - browser(firefox-beta): roll @ beta Apr 29, 2021 - v89.0b6 (#6368)
0abcaf0 - browser(webkit): roll to safari-612.1.12-branch (#6367)
b0fae0f - browser(firefox): merge FrameData into Frame (#6365)
1c40c94 - chore: only throw the proxy on launch required on win/CR (#6350)
263a0fd - fix: evaluate in utility for screenshots (#6364)
a456131 - test: set 20 minutes timeout for installation tests (#6363)
11882cd - test: roll to [email protected] (#6262)
2333eb0 - chore: adjust GitHub template envinfo command (#6359)
434f474 - chore(evaluate): implement non-stalling evaluate (#6354)
06a9268 - Reapply #6363 w/ modification--amend
0becd94 - Revert "Revert "fix: break require cycle (#6353)""
17e966b - Revert "fix: break require cycle (#6353)"
0bcfa92 - fix: break require cycle (#6353)
560bea5 - fix: do not close stream until all bytes have been read (#6351)
3b1bfdf - devops(chromium): build a new Chromium 876873 (#6349)
369bd55 - feat(webkit): bump to 1468 (#6345)
1b771ed - docs(python): add Error base class (#6315)
0039b31 - browser(webkit): support downloads larger than 16Kb on Windows (#6343)
3413574 - feat(webkit): bump to 1467 (#6295)
922d9ce - chore(tracing): fix some of the start/stop scenarios (#6337)
abb6145 - docs(keyboard): clarify how page.type works for non-US characters (#6273)
8348085 - browser(webkit): preserve color scheme override after navigation (#6333)
5be005b - Revert "fix: increas recent logs buffer (#6330)" (#6332)
b6b2366 - fix: browser logging (#6331)
3c12602 - fix: increas recent logs buffer (#6330)
a51dc50 - fix(accessibiltiy): ignore new roles that came with new chromium (#6329)
f4b8c3a - browser(firefox): disable proton UI for now (#6327)
2f290cc - fix: fix docs for BrowserType headers (#6314)
ce03310 - docs: add route example with some logic (#6324)
be27f47...
v1.10.0
Highlights
- Playwright for Java v1.10 is now stable!
- 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
browserType.launch()now accepts the new'channel'option. Read more in our documentation.
Issues Closed (61)
#742 - [Feature] - Delete a certain cookie instead of clear all cookies
#1063 - [Feature] Improve handling of invalid browser arguments
#1797 - [Feature] Support NodeList and Node[] as return from Page.evaluateHandle(pageFunction[, arg])?
#2089 - [BUG] Text selector doesn't match by combined innerText
#2220 - [Feature] Download progression
#2238 - [Feature] Hide file pickers if they will be emulated
#2308 - [Question] How to handle discarded tabs?
#2747 - [Feature] Highlight element in the browser
#2767 - [Question] Is it possible to define host resolution rules per browser instance?
#2902 - [Feature] Method to wait for event listeners to be attached
#3032 - [Feature] mouse.getPosition()
#3184 - [Feature] Support raw headers
#3265 - [Feature] page.inputValue() that reads from the value property, not the attribute
#3540 - [Feature] Lazy loaded frames API
#3648 - [Feature] Provide command args with Logger logs
#3828 - [Feature] Ability to set device scale factor on an existing page
#3989 - [Feature] Adding support to custom keyboard layout
#4263 - [Question] Video Stream
#4377 - [Feature] Support evaluate() as a content script
#4390 - [Feature] a hook mechanism to augment cross-cutting logic
#4441 - [Feature] extension message passing in non-persistent context
#4507 - [BUG] DeviceDescriptor not exposed
#4543 - [Question] Plans to implement puppetaria (aria/ selector)
#4902 - [BUG] Can't catch firefox error dialog
#5228 - [BUG] launchPersistentContext hanging on "about:blank" [REOPENED]
#5633 - [Question] How to record video / take screenshot with multiple windows
#5634 - [REGRESSION]: Text selector changed behavior
#5636 - [BUG] Playwright install fails on windows 10
#5642 - [Question] How to start webkit with persistent context?
#5648 - [BUG] Error: Duplicate target when trying to connectOverCDP next time
#5649 - [Question] How to disable Debug mode, once I set PWDEBUG in env. variable now it's always running in debug mode
#5684 - [BUG] Firefox is failing while testing.
#5716 - [Feature] make scroll into view optional for page.click()
#5733 - Browser Closed : UnhandledPromiseRejectionWarning (node:1744)
#5735 - [Question] Is there a way to access the payload for a PUT request method?
#5747 - [Question] Mocking the same endpoint multiple times in one test
#5748 - [Feature] Docs update for text= vs :has-text vs :text
#5749 - [BUG] UnhandledPromiseRejectionWarning: browserType.launch: Timeout 30000ms exceeded.
#5752 - CURLOPT_INTERFACE alternative in Playwright browser?
#5767 - [BUG] Error: browserType.launch: Failed to launch chromium because executable doesn't exist at /home/jenkins/.cache/ms-playwright/chromium-844399/chrome-linux/chrome
#5778 - [BUG] Chromium: screenshot is created without scrollbars
#5780 - [Question] Support for CentOS
#5781 - waitForResponse()
#5786 - [Question] How to download Playwright Chromium browsers in local?
#5792 - Cant trace "METHOD: OPTIONS" XHR request
#5793 - [Question] The browser rendering two versions of the same page source code
#5794 - [BUG][Chromium] AudioRtpReceiver::OnSetVolume: No audio channel exists - error with testing microphone in the Twillio video calls
#5795 - [Question]WebKit version
#5797 - [Feature] Option to not remove unused browsers
#5799 - [internal, wip] dependency installation considerations
#5801 - [BUG]browserType.launch: Failed to launch firefox because executable doesn't exist at /root/.cache/ms-playwright/firefox-1234/firefox/firefox
#5802 - [BUG] codegen window fails to appear on window as non admin
#5804 - [Question] Is there a way to emulate cmd+f functionality?
#5809 - [Question]how to use playwright cookies to bypass login
#5818 - [Question] is it not possible to use no proxy with 'per-context' lauched instance?
#5821 - [Feature] Define Page.click options typing
#5822 - Does playwright support waiting for the element invisible?
#5841 - [BUG] Inspector collects signals before action
#5842 - [BUG] When using with Chrome 89, Browser.close won't quit browser in headful mode
#5851 - [BUG] webkit evaluate promise never returns / fails
#5857 - [Question] Docker debian slim image
Commits (187)
a61487f - chore: mark v1.10.0
543582b - chore: expose channel name literals for types (#5922)
f70eaf4 - docs(android): android doc nits (#5924)
8f1d03f - docs(options): clarify recordHarPath and recordVideoDir behavior (#5923)
ca35da0 - test(android): run selected page tests on android (3) (#5910)
3a27bdd - chore(dotnet): improve name generation for objects (#5860)
9f1b2f6 - test(resize): add a screenshot resize test (#5907)
ec6453d - fix: installer compilation (#5908)
172de40 - browser(chromium): build current dev chromium (#5911)
b74af22 - browser(webkit): fix mac compilation after latest roll (#5909)
14ccc80 - fix(android): bundle android driver in all settings (#5883)
cac5aeb - docs(browser): wording nits
1bcbb15 - set system default python3 to python3.8 (#5892)
2064d27 - fix(installer): retain browsers installed via Playwrigth CLI (#5904)
6dd4d75 - browser(webkit): roll to 03-22-21 (#5903)
67c29e8 - chore: add missing await to floating promises (#5813)
be9fa74 - docs(intro): remove stray wait from sync snippet
2372519 - docs: add event listener guide (#5881)
fbb4626 - chore(dotnet): support for optional properties in generated objects (#5889)
1f1c8b7 - test(android): run selected page tests on android (2) (#5882)
ad5c028 - test(android): run selected page tests on android (#5879)
cbebf64 - docs: fix circleci invalid yaml (#5880)
16bf462 - test: organize tests to not depend on context (#5878)
5c753b7 - docs: add the browsers section (#5876)
c68bd31 - test: make init script test strict again (#5877)
c4410d3 - Revert "chore(docs): add support for language specific notes (#5810)"
516f13e - Revert "chore(docs): reference the available constants for csharp (#5785)"
c435ff3 - feat(firefox): roll Firefox to r1238 (#5873)
9a50304 - fix: work-around electron's broken event loop (#5867)
dfb1c99 - chore(docs): reference the available constants for csharp (#5785)
d53cea7 - fix(pageOrError): throw in launchPersistentContext if context page has errors (#5868)
bb21faf - fix: disable firefox's webrender on Darwin (#5870)
9bd35d82 - test: disable shortcuts test on Firefox darwin (#5869)
de16d17 - docs(dotnet): move options arguments last (#5856)
2367039 - chore(stable): throw user-friendly message when ffmpeg is missing (#5865)
141583c - infra(chrome_stable): add more bots (#5863)
84efdfc - chore(autowait): auto-wait for top level navigations only (#5861)
5ae731a - chore(evaluate): respect signals when evaluating on handle (#5847)
7011e57 - chore(evaluate): explicitly annotate methods that wait for signals (#5859)
c550008 - docs(dotnet): adds option parameters for csharp on element handle (#5823)
ae460f0 - devops: start downloading webkit fork on Mac 10.14 (#5837)
693e569 - chore(docs): add support for language specific notes (#5810)
1fab845 - browser(firefox): roll Firefox to beta @ Mar 16, 2021 (#5852)
e8a33c4 - feat(firefox): roll Firefox to r1237 (#5849)
bf36b48 - fix(rimraf): allow 10 retires when removing the profile folder (#5826)
d1a3a5d - chore: cleanup test logging on CI (#5848)
8df4dcb - feat(webkit): bump to 1446 (#5844)
d81ebff - fix(inspector): do not collect action signals while on pause (#5843)
36a61c3 - docs(dotnet): ability to generate generics and null on path args (#5824)
ab4629a - devops: add trigger workflow to deprecated webkit builds (#5836)
8dc7405 - devops: refactor check_cdn.sh script (#5835)
e64f666 - devops: fork webkit into a separate browser (#5834)
5cf1361 - chore: pretty print storage state (#5830)
c2db8da - fix(inspector): await inspector init to avoid races (#5829)
8565e72 - chore: consolidate browser cheatsheets (#5832)
5835c7e - browser(webkit): fix linux builds, install liblcms2-dev (#5831)
095ad63 - chore: update error message when using userDataDir arg (#5814)
ea32ad2 - infra(channel): add edge stable bot (#5825)
95affe9 - chore: do not delete unused browsers when PLAYWRIGHT_SKIP_BROWSER_GC is specified (#5827)
226bee0 - browser(webkit): roll to 03-15-21 (#5828)
defd1a3 - fix(chromium): fix crash if connecting to a browser with a serviceworker (#5803)
1dd6bd3 - infra(channel): wire release channel to all tests (#5820)
a96d6a7 - feat: allow to pick stable channel (#5817)
0d32b05 - chore(deps): bump react-dev-utils from 11.0.3 to 11.0.4 (#5811)
c4578f1 - chore: organize per-browser dependencies (#5787)
a185da9 - chore: allow skipping host requirements validation (#5806)
7fcb892 - fix(firefox): ensure a exception catch when async send call to a dead object; (#5805)
ad69b2a - chore: unify recorder & tracer uis (#5791)
43de259 - fix(xmldocs): over-greedy regex for md links and clean-up (#5798)
6a8c8d9 - docs: fix Dialog class reference (#5788)
720dea4 - docs(dotnet): adding missing methods from dotnet port (#5763)
b01f6ec - test: add a test for css selec...

