6.9 KiB
| id | title |
|---|---|
| release-notes | Release notes |
Version 1.15
🖱️ Mouse Wheel
By using Page.Mouse.WheelAsync you are now able to scroll vertically or horizontally.
📜 New Headers API
Previously it was not possible to get multiple header values of a response. This is now possible and additional helper functions are available:
- Request.AllHeadersAsync()
- Request.HeadersArrayAsync()
- Request.HeaderValueAsync(name: string)
- Response.AllHeadersAsync()
- Response.HeadersArrayAsync()
- Response.HeaderValueAsync(name: string)
- Response.HeaderValuesAsync(name: string)
🌈 Forced-Colors emulation
Its now possible to emulate the forced-colors CSS media feature by passing it in the context options or calling Page.EmulateMediaAsync().
New APIs
- Page.RouteAsync() accepts new
timesoption to specify how many times this route should be matched. - Page.SetCheckedAsync(selector: string, checked: Boolean) and Locator.SetCheckedAsync(selector: string, checked: Boolean) was introduced to set the checked state of a checkbox.
- Request.SizesAsync() Returns resource size information for given http request.
- Tracing.StartChunkAsync() - Start a new trace chunk.
- Tracing.StopChunkAsync() - Stops a new trace chunk.
Important ⚠
- ⬆ .NET Core Apps 2.1 are no longer supported for our CLI tooling. As of August 31st, 2021, .NET Core 2.1 is no longer supported and will not receive any security updates. We've decided to move the CLI forward and require .NET Core 3.1 as a minimum.
Browser Versions
- Chromium 96.0.4641.0
- Mozilla Firefox 92.0
- WebKit 15.0
Version 1.14
⚡️ 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.
Set setStrict(true) in your action calls to opt in.
// This will throw if you have more than one button!
await page.ClickAsync("button", new Page.ClickOptions().setStrict(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!
var locator = page.Locator("button");
await locator.ClickAsync();
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.ClickAsync("_react=SubmitButton[enabled=true]");
await page.ClickAsync("_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.ClickAsync("button >> nth=0");
// or if you are using locators, you can use First, Nth() and Last
await page.Locator("button").First.ClickAsync();
// click a visible button
await button.ClickAsync("button >> visible=true");
Browser Versions
- Chromium 94.0.4595.0
- Mozilla Firefox 91.0
- WebKit 15.0
Version 1.13
Playwright
- 🖖 Programmatic drag-and-drop support via the [
method: Page.dragAndDrop] API. - 🔎 Enhanced HAR with body sizes for requests and responses. Use via
recordHaroption in [method: Browser.newContext].
Tools
- Playwright Trace Viewer now shows parameters, returned values and
console.log()calls.
New and Overhauled Guides
Browser Versions
- Chromium 93.0.4576.0
- Mozilla Firefox 90.0
- WebKit 14.2
New Playwright APIs
- new
baseURLoption in [method: Browser.newContext] and [method: Browser.newPage] - [
method: Response.securityDetails] and [method: Response.serverAddr] - [
method: Page.dragAndDrop] and [method: Frame.dragAndDrop] - [
method: Download.cancel] - [
method: Page.inputValue], [method: Frame.inputValue] and [method: ElementHandle.inputValue] - new
forceoption in [method: Page.fill], [method: Frame.fill], and [method: ElementHandle.fill] - new
forceoption in [method: Page.selectOption], [method: Frame.selectOption], and [method: ElementHandle.selectOption]
Version 1.12
Highlights
- Playwright for .NET v1.12 is now stable!
- Ships with the codegen and trace viewer tools out-of-the-box
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