cherry-pick(#29692): docs: better addLocatorHandler example in release notes (#29697)

This PR cherry-picks the following commits:

- 321e9d72c3
This commit is contained in:
Playwright Service 2024-02-27 11:05:24 -08:00 committed by GitHub
parent 8709a3a24b
commit e7f0635c17
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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)