Skip to content

Commit

Permalink
docs: add warning to locator.all (#22537)
Browse files Browse the repository at this point in the history
References #22517.
  • Loading branch information
dgozman committed Apr 24, 2023
1 parent 62bd419 commit 05b113f
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
8 changes: 7 additions & 1 deletion docs/src/api/class-locator.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,13 @@ a way to find element(s) on the page at any moment. Locator can be created with
When locator points to a list of elements, returns array of locators, pointing
to respective elements.

Note that [`method: Locator.all`] does not wait for elements to match the locator, and instead immediately returns whatever is present in the page. To avoid flakiness when elements are loaded dynamically, wait for the loading to finish before calling [`method: Locator.all`].
:::note
[`method: Locator.all`] does not wait for elements to match the locator, and instead immediately returns whatever is present in the page.

When the list of elements changes dynamically, [`method: Locator.all`] will produce unpredictable and flaky results.

When the list of elements is stable, but loaded dynamically, wait for the full list to finish loading before calling [`method: Locator.all`].
:::

**Usage**

Expand Down
9 changes: 5 additions & 4 deletions packages/playwright-core/types/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10203,10 +10203,11 @@ export interface Locator {
/**
* When locator points to a list of elements, returns array of locators, pointing to respective elements.
*
* Note that [locator.all()](https://playwright.dev/docs/api/class-locator#locator-all) does not wait for elements to
* match the locator, and instead immediately returns whatever is present in the page. To avoid flakiness when
* elements are loaded dynamically, wait for the loading to finish before calling
* [locator.all()](https://playwright.dev/docs/api/class-locator#locator-all).
* **NOTE** [locator.all()](https://playwright.dev/docs/api/class-locator#locator-all) does not wait for elements to
* match the locator, and instead immediately returns whatever is present in the page. When the list of elements
* changes dynamically, [locator.all()](https://playwright.dev/docs/api/class-locator#locator-all) will produce
* unpredictable and flaky results. When the list of elements is stable, but loaded dynamically, wait for the full
* list to finish loading before calling [locator.all()](https://playwright.dev/docs/api/class-locator#locator-all).
*
* **Usage**
*
Expand Down

0 comments on commit 05b113f

Please sign in to comment.