メインコンテンツにスキップ
バージョン: 22.5.0

Page.evaluate() メソッド

ページのコンテキストで関数を評価し、結果を返します。

page.evaluate に渡された関数がPromiseを返す場合、関数はPromiseが解決されるまで待ってその値を返します。

シグネチャ:

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

パラメータ

パラメータ説明
pageFunction関数 | 文字列ページ内で実行される関数
argsパラメータpageFunctionに渡される引数

戻り値

Promise<Awaited<ReturnType<関数>>>

pageFunction の戻り値。

例 1

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

関数ではなく文字列を渡すことができます(ただし、関数はデバッグが容易でTypeScriptと併用しやすいので推奨されます)

例 2

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

TypeScriptを最大限に活用するには、ジェネリックとして`pageFunction`の型を渡す必要があります。

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

例 3

ElementHandle インスタンス(JSHandleを含む)は、pageFunction に引数として渡すことができます。

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