0
0
mirror of https://github.com/puppeteer/puppeteer synced 2024-06-14 14:02:48 +00:00
puppeteer/docs/api/puppeteer.page.evaluate.md
jrandolf f07ad2c661
fix: update documentation on configuring puppeteer ()
This PR updates the docs regarding configuring puppeteer. In addition,
some changes have been made to the documentation generator to show
default values on the documentation site.

Also fixes: https://github.com/puppeteer/puppeteer/pull/9144
2022-10-24 09:07:05 +02:00

1.7 KiB

sidebar_label
Page.evaluate

Page.evaluate() method

Evaluates a function in the page's context and returns the result.

If the function passed to page.evaluteHandle returns a Promise, the function will wait for the promise to resolve and return its value.

Signature:

class Page {
  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 a function that is run within the page
args Params arguments to be passed to the pageFunction

Returns:

Promise<Awaited<ReturnType<Func>>>

the return value of pageFunction.

Example 1

const result = await frame.evaluate(() => {
  return Promise.resolve(8 * 7);
});
console.log(result); // prints "56"

You can pass a string instead of a function (although functions are recommended as they are easier to debug and use with TypeScript):

Example 2

const aHandle = await page.evaluate('1 + 2');

To get the best TypeScript experience, you should pass in as the generic the type of pageFunction:

const aHandle = await page.evaluate(() => 2);

Example 3

ElementHandle instances (including JSHandles) can be passed as arguments to the pageFunction:

const bodyHandle = await page.$('body');
const html = await page.evaluate(body => body.innerHTML, bodyHandle);
await bodyHandle.dispose();