Skip to content

Commit

Permalink
cherry-pick(#29692): docs: better addLocatorHandler example in releas…
Browse files Browse the repository at this point in the history
…e notes (#29697)

This PR cherry-picks the following commits:

- 321e9d7
  • Loading branch information
playwrightmachine committed Feb 27, 2024
1 parent 8709a3a commit e7f0635
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions docs/src/release-notes-js.md
Expand Up @@ -13,13 +13,15 @@ import LiteYouTube from '@site/src/components/LiteYouTube';
- New method [`method: Page.addLocatorHandler`] registers a callback that will be invoked when specified element becomes visible and may block Playwright actions. The callback can get rid of the overlay. Here is an example that closes a cookie dialog when it appears:
```js
// Setup the handler.
await page.addLocatorHandler(page.getByRole('button', { name: 'Accept all cookies' }), async () => {
await page.getByRole('button', { name: 'Reject all cookies' }).click();
});

await page.addLocatorHandler(
page.getByRole('heading', { name: 'Hej! You are in control of your cookies.' }),
async () => {
await page.getByRole('button', { name: 'Accept all' }).click();
});
// Write the test as usual.
await page.goto('https://example.com');
await page.getByRole('button', { name: 'Start here' }).click();
await page.goto('https://www.ikea.com/');
await page.getByRole('link', { name: 'Collection of blue and white' }).click();
await expect(page.getByRole('heading', { name: 'Light and easy' })).toBeVisible();
```

- `expect(callback).toPass()` timeout can now be configured by `expect.toPass.timeout` option [globally](./api/class-testconfig#test-config-expect) or in [project config](./api/class-testproject#test-project-expect)
Expand Down

0 comments on commit e7f0635

Please sign in to comment.