cherry-pick(#20933): chore: 1.31 release notes for js

This commit is contained in:
Dmitry Gozman 2023-02-16 09:35:01 -08:00
parent d32d466f2f
commit bb3b96e433
3 changed files with 80 additions and 6 deletions

View file

@ -704,7 +704,7 @@ Ensures the [Locator] points to an element that intersects viewport, according t
**Usage** **Usage**
```js ```js
const locator = page.locator('button.submit'); const locator = page.getByRole('button');
// Make sure at least some part of element intersects viewport. // Make sure at least some part of element intersects viewport.
await expect(locator).toBeInViewport(); await expect(locator).toBeInViewport();
// Make sure element is fully outside of viewport. // Make sure element is fully outside of viewport.
@ -714,7 +714,7 @@ await expect(locator).toBeInViewport({ ratio: 0.5 });
``` ```
```java ```java
Locator locator = page.locator("button.submit"); Locator locator = page.getByRole(AriaRole.BUTTON);
// Make sure at least some part of element intersects viewport. // Make sure at least some part of element intersects viewport.
assertThat(locator).isInViewport(); assertThat(locator).isInViewport();
// Make sure element is fully outside of viewport. // Make sure element is fully outside of viewport.
@ -724,7 +724,7 @@ assertThat(locator).isInViewport(new LocatorAssertions.IsInViewportOptions().set
``` ```
```csharp ```csharp
var locator = Page.Locator("button.submit"); var locator = Page.GetByRole(AriaRole.Button);
// Make sure at least some part of element intersects viewport. // Make sure at least some part of element intersects viewport.
await Expect(locator).ToBeInViewportAsync(); await Expect(locator).ToBeInViewportAsync();
// Make sure element is fully outside of viewport. // Make sure element is fully outside of viewport.
@ -736,7 +736,7 @@ await Expect(locator).ToBeInViewportAsync(new() { Ratio = 0.5 });
```python async ```python async
from playwright.async_api import expect from playwright.async_api import expect
locator = page.locator("button.submit") locator = page.get_by_role("button")
# Make sure at least some part of element intersects viewport. # Make sure at least some part of element intersects viewport.
await expect(locator).to_be_in_viewport() await expect(locator).to_be_in_viewport()
# Make sure element is fully outside of viewport. # Make sure element is fully outside of viewport.
@ -748,7 +748,7 @@ await expect(locator).to_be_in_viewport(ratio=0.5)
```python sync ```python sync
from playwright.sync_api import expect from playwright.sync_api import expect
locator = page.locator("button.submit") locator = page.get_by_role("button")
# Make sure at least some part of element intersects viewport. # Make sure at least some part of element intersects viewport.
expect(locator).to_be_in_viewport() expect(locator).to_be_in_viewport()
# Make sure element is fully outside of viewport. # Make sure element is fully outside of viewport.

View file

@ -6,6 +6,80 @@ toc_max_heading_level: 2
import LiteYouTube from '@site/src/components/LiteYouTube'; import LiteYouTube from '@site/src/components/LiteYouTube';
## Version 1.31
### New APIs
- New property [`property: TestProject.dependencies`] to configure dependencies between projects.
Using dependencies allows global setup to produce traces and other artifacts,
see the setup steps in the test report and more.
```js
// playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
projects: [
{
name: 'setup',
testMatch: /global.setup\.ts/,
},
{
name: 'chromium',
use: devices['Desktop Chrome'],
dependencies: ['setup'],
},
{
name: 'firefox',
use: devices['Desktop Firefox'],
dependencies: ['setup'],
},
{
name: 'webkit',
use: devices['Desktop Safari'],
dependencies: ['setup'],
},
],
});
```
- New assertion [`method: LocatorAssertions.toBeInViewport`] ensures that locator points to an element that intersects viewport, according to the [intersection observer API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API).
```js
const button = page.getByRole('button');
// Make sure at least some part of element intersects viewport.
await expect(button).toBeInViewport();
// Make sure element is fully outside of viewport.
await expect(button).not.toBeInViewport();
// Make sure that at least half of the element intersects viewport.
await expect(button).toBeInViewport({ ratio: 0.5 });
```
### Miscellaneous
- DOM snapshots in trace viewer can be now opened in a separate window.
- New method `defineConfig` to be used in `playwright.config`.
- New option [`option: Route.fetch.maxRedirects`] for method [`method: Route.fetch`].
- Playwright now supports Debian 11 arm64.
- Official [docker images](./docker.md) now include Node 18 instead of Node 16.
### Browser Versions
* Chromium 111.0.5563.19
* Mozilla Firefox 109.0
* WebKit 16.4
This version was also tested against the following stable channels:
* Google Chrome 110
* Microsoft Edge 110
## Version 1.30 ## Version 1.30
### Browser Versions ### Browser Versions

View file

@ -4473,7 +4473,7 @@ interface LocatorAssertions {
* **Usage** * **Usage**
* *
* ```js * ```js
* const locator = page.locator('button.submit'); * const locator = page.getByRole('button');
* // Make sure at least some part of element intersects viewport. * // Make sure at least some part of element intersects viewport.
* await expect(locator).toBeInViewport(); * await expect(locator).toBeInViewport();
* // Make sure element is fully outside of viewport. * // Make sure element is fully outside of viewport.