Files
puppeteer/docs/api/puppeteer.elementhandle._eval.md
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Nikolay Vitkov
4afe06b61d chore(deps-dev): Bump the dev-dependencies group with 14 updates (#13982)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nikolay Vitkov <[email protected]>
2025-07-02 08:16:05 +00:00

2.3 KiB

sidebar_label
sidebar_label
ElementHandle.$eval

ElementHandle.$eval() method

Runs the given function on the first element matching the given selector in the current element.

If the given function returns a promise, then this method will wait till the promise resolves.

Signature

class ElementHandle {
  $eval<
    Selector extends string,
    Params extends unknown[],
    Func extends EvaluateFuncWith<NodeFor<Selector>, Params> = EvaluateFuncWith<
      NodeFor<Selector>,
      Params
    >,
  >(
    selector: Selector,
    pageFunction: Func | string,
    ...args: Params
  ): Promise<Awaited<ReturnType<Func>>>;
}

Parameters

Parameter

Type

Description

selector

Selector

selector to query the page for. CSS selectors can be passed as-is and a Puppeteer-specific selector syntax allows querying by text, a11y role and name, and xpath and combining these queries across shadow roots. Alternatively, you can specify the selector type using a prefix.

pageFunction

Func | string

The function to be evaluated in this element's page's context. The first element matching the selector will be passed in as the first argument.

args

Params

Additional arguments to pass to pageFunction.

Returns:

Promise<Awaited<ReturnType<Func>>>

A promise to the result of the function.

Example

const tweetHandle = await page.$('.tweet');
expect(await tweetHandle.$eval('.like', node => node.innerText)).toBe('100');
expect(await tweetHandle.$eval('.retweets', node => node.innerText)).toBe('10');