Skip to content

Commit

Permalink
chore: withdraw locator.enumerate (#19484)
Browse files Browse the repository at this point in the history
  • Loading branch information
pavelfeldman committed Dec 15, 2022
1 parent 7bc184f commit 3afd83c
Show file tree
Hide file tree
Showing 6 changed files with 0 additions and 84 deletions.
30 changes: 0 additions & 30 deletions docs/src/api/class-locator.md
Expand Up @@ -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]>
Expand Down
22 changes: 0 additions & 22 deletions docs/src/locators.md
Expand Up @@ -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
Expand Down
4 changes: 0 additions & 4 deletions packages/playwright-core/src/client/locator.ts
Expand Up @@ -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<string[]> {
return this._frame.$$eval(this._selector, ee => ee.map(e => (e as HTMLElement).innerText));
}
Expand Down
16 changes: 0 additions & 16 deletions packages/playwright-core/types/types.d.ts
Expand Up @@ -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> = [A,B];

type PageWaitForSelectorOptionsNotHidden = PageWaitForSelectorOptions & {
state?: 'visible'|'attached';
};
Expand Down Expand Up @@ -10254,20 +10252,6 @@ export interface Locator {
*/
elementHandles(): Promise<Array<ElementHandle>>;

/**
* 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<Array<Tuple<Locator, number>>>;

/**
* Returns the return value of `pageFunction` as a [JSHandle].
*
Expand Down
10 changes: 0 additions & 10 deletions tests/page/locator-list.spec.ts
Expand Up @@ -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(`<div><p>0</p><p>1</p><p>2</p><p>3</p></div>`);
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);
});
2 changes: 0 additions & 2 deletions utils/generate_types/overrides.d.ts
Expand Up @@ -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> = [A,B];

type PageWaitForSelectorOptionsNotHidden = PageWaitForSelectorOptions & {
state?: 'visible'|'attached';
};
Expand Down

0 comments on commit 3afd83c

Please sign in to comment.