Skip to main content

Frame.$$eval() method

Signature:

$$eval<Selector extends keyof HTMLElementTagNameMap, Params extends unknown[], Func extends EvaluateFunc<[
HTMLElementTagNameMap[Selector][],
...Params
]> = EvaluateFunc<[HTMLElementTagNameMap[Selector][], ...Params]>>(selector: Selector, pageFunction: Func | string, ...args: Params): Promise<Awaited<ReturnType<Func>>>;

Parameters

ParameterTypeDescription
selectorSelectorthe selector to query for
pageFunctionFunc | stringthe function to be evaluated in the frame's context
argsParamsadditional arguments to pass to pageFunction

Returns:

Promise<Awaited<ReturnType<Func>>>

Remarks

This method runs Array.from(document.querySelectorAll(selector)) within the frame and passes it as the first argument to pageFunction.

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

Example

const divsCounts = await frame.$$eval('div', divs => divs.length);