puppeteer/new-docs/puppeteer.elementhandle.__eval.md
Alex Rudenko 6657364364
docs(new): migrate ElementHandle to TSDoc (#6073)
* docs(new): migrate ElementHandle to TSDoc

Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
2020-06-22 17:21:57 +02:00

1.3 KiB

Home > puppeteer > ElementHandle > $$eval

ElementHandle.$$eval() method

This method runs document.querySelectorAll within the element and passes it as the first argument to pageFunction. If there's no element matching selector, the method throws an error.

If pageFunction returns a Promise, then frame.$$eval would wait for the promise to resolve and return its value.

Signature:

$$eval<ReturnType extends any>(selector: string, pageFunction: Function | string, ...args: unknown[]): Promise<ReturnType>;

Parameters

Parameter Type Description
selector string
pageFunction Function | string
args unknown[]

Returns:

Promise<ReturnType>

Example 1

<div class="feed">
  <div class="tweet">Hello!</div>
  <div class="tweet">Hi!</div>
</div>

Example 2

const feedHandle = await page.$('.feed');
expect(await feedHandle.$$eval('.tweet', nodes => nodes.map(n => n.innerText)))
 .toEqual(['Hello!', 'Hi!']);