From 3afd83c8cce5b036ad93b0dca188e8a5bd59abbf Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Thu, 15 Dec 2022 10:13:56 -0800 Subject: [PATCH] chore: withdraw locator.enumerate (#19484) --- docs/src/api/class-locator.md | 30 ------------------- docs/src/locators.md | 22 -------------- .../playwright-core/src/client/locator.ts | 4 --- packages/playwright-core/types/types.d.ts | 16 ---------- tests/page/locator-list.spec.ts | 10 ------- utils/generate_types/overrides.d.ts | 2 -- 6 files changed, 84 deletions(-) diff --git a/docs/src/api/class-locator.md b/docs/src/api/class-locator.md index ec3e28b50c..0ba190f8e4 100644 --- a/docs/src/api/class-locator.md +++ b/docs/src/api/class-locator.md @@ -458,36 +458,6 @@ Resolves given locator to the first matching DOM element. If no elements matchin Resolves given locator to all matching DOM elements. -## async method: Locator.enumerate -* since: v1.14 -* langs: js, python, csharp -- returns: <[Array]<[Tuple]<[Locator],[int]>>> - -When locator points to a list of elements, returns array of (locator, index) pairs, -pointing to respective elements. - -**Usage** - -```js -for (const [li, i] of await page.getByRole('listitem').enumerate()) - await li.click(); -``` - -```python async -for (li, index) in await page.get_by_role('listitem').enumerate(): - await li.click(); -``` - -```python sync -for (li, index) in page.get_by_role('listitem').enumerate(): - li.click(); -``` - -```csharp -foreach (var (li, index) in await page.GetByRole('listitem').AllAsync()) - await li.ClickAsync(); -``` - ## async method: Locator.evaluate * since: v1.14 - returns: <[Serializable]> diff --git a/docs/src/locators.md b/docs/src/locators.md index 7fac77b9c9..20f941b4f0 100644 --- a/docs/src/locators.md +++ b/docs/src/locators.md @@ -1389,28 +1389,6 @@ foreach (var row in await page.GetByRole(AriaRole.Listitem).AllAsync()) Console.WriteLine(await row.TextContentAsync()); ``` -Iterate elements with their respective indexes: - -```js -for (const [row, index] of await page.getByRole('listitem').enumerate()) - console.log(index, await row.textContent()); -``` - -```python async -for (row, index) in await page.get_by_role('listitem').enumerate(): - print(index, await row.text_content()) -``` - -```python sync -for (row, index) in page.get_by_role('listitem').enumerate(): - print(index, row.text_content()) -``` - -```csharp -foreach (var (row, index) in await page.GetByRole('listitem').AllAsync()) - Console.WriteLine(index + ' ' + await row.TextContentAsync()); -``` - Iterate using regular for loop: ```js diff --git a/packages/playwright-core/src/client/locator.ts b/packages/playwright-core/src/client/locator.ts index 94e79190d1..1e31261981 100644 --- a/packages/playwright-core/src/client/locator.ts +++ b/packages/playwright-core/src/client/locator.ts @@ -296,10 +296,6 @@ export class Locator implements api.Locator { return new Array(await this.count()).fill(0).map((e, i) => this.nth(i)); } - async enumerate(): Promise<[Locator, number][]> { - return new Array(await this.count()).fill(0).map((e, i) => [this.nth(i), i]); - } - async allInnerTexts(): Promise { return this._frame.$$eval(this._selector, ee => ee.map(e => (e as HTMLElement).innerText)); } diff --git a/packages/playwright-core/types/types.d.ts b/packages/playwright-core/types/types.d.ts index 46a87b8639..c23bec9fca 100644 --- a/packages/playwright-core/types/types.d.ts +++ b/packages/playwright-core/types/types.d.ts @@ -21,8 +21,6 @@ import { ReadStream } from 'fs'; import { Protocol } from './protocol'; import { Serializable, EvaluationArgument, PageFunction, PageFunctionOn, SmartHandle, ElementHandleForTag, BindingSource } from './structs'; -type Tuple = [A,B]; - type PageWaitForSelectorOptionsNotHidden = PageWaitForSelectorOptions & { state?: 'visible'|'attached'; }; @@ -10254,20 +10252,6 @@ export interface Locator { */ elementHandles(): Promise>; - /** - * When locator points to a list of elements, returns array of (locator, index) pairs, pointing to respective - * elements. - * - * **Usage** - * - * ```js - * for (const [li, i] of await page.getByRole('listitem').enumerate()) - * await li.click(); - * ``` - * - */ - enumerate(): Promise>>; - /** * Returns the return value of `pageFunction` as a [JSHandle]. * diff --git a/tests/page/locator-list.spec.ts b/tests/page/locator-list.spec.ts index b56e729a59..876bd0c473 100644 --- a/tests/page/locator-list.spec.ts +++ b/tests/page/locator-list.spec.ts @@ -23,13 +23,3 @@ it('locator.all should work', async ({ page }) => { texts.push(await p.textContent()); expect(texts).toEqual(['A', 'B', 'C']); }); - -it('locator.enumerate should work', async ({ page }) => { - await page.setContent(`

0

1

2

3

`); - let items = 0; - for (const [p, i] of await page.locator('div >> p').enumerate()) { - ++items; - expect(await p.textContent()).toBe(String(i)); - } - expect(items).toBe(4); -}); diff --git a/utils/generate_types/overrides.d.ts b/utils/generate_types/overrides.d.ts index 448145fecf..c85a05234c 100644 --- a/utils/generate_types/overrides.d.ts +++ b/utils/generate_types/overrides.d.ts @@ -20,8 +20,6 @@ import { ReadStream } from 'fs'; import { Protocol } from './protocol'; import { Serializable, EvaluationArgument, PageFunction, PageFunctionOn, SmartHandle, ElementHandleForTag, BindingSource } from './structs'; -type Tuple = [A,B]; - type PageWaitForSelectorOptionsNotHidden = PageWaitForSelectorOptions & { state?: 'visible'|'attached'; };