puppeteer/docs/api/puppeteer.executioncontext.evaluate.md

1.7 KiB

sidebar_label
ExecutionContext.evaluate

ExecutionContext.evaluate() method

Evaluates the given function.

Signature:

class ExecutionContext {
  evaluate<
    Params extends unknown[],
    Func extends EvaluateFunc<Params> = EvaluateFunc<Params>
  >(
    pageFunction: Func | string,
    ...args: Params
  ): Promise<Awaited<ReturnType<Func>>>;
}

Parameters

Parameter Type Description
pageFunction Func | string The function to evaluate.
args Params Additional arguments to pass into the function.

Returns:

Promise<Awaited<ReturnType<Func>>>

The result of evaluating the function. If the result is an object, a vanilla object containing the serializable properties of the result is returned.

Example 1

const executionContext = await page.mainFrame().executionContext();
const result = await executionContext.evaluate(() => Promise.resolve(8 * 7))* ;
console.log(result); // prints "56"

Example 2

A string can also be passed in instead of a function:

console.log(await executionContext.evaluate('1 + 2')); // prints "3"

Example 3

Handles can also be passed as args. They resolve to their referenced object:

const oneHandle = await executionContext.evaluateHandle(() => 1);
const twoHandle = await executionContext.evaluateHandle(() => 2);
const result = await executionContext.evaluate(
  (a, b) => a + b,
  oneHandle,
  twoHandle
);
await oneHandle.dispose();
await twoHandle.dispose();
console.log(result); // prints '3'.