本文へスキップ
バージョン: 22.5.0

Page.evaluateOnNewDocument() メソッド

以下のいずれかのシナリオで呼び出される関数を追加します。

  • ページがナビゲートされるたびに

  • 子フレームがアタッチまたはナビゲートされるたびに。この場合、関数は新しくアタッチされたフレームのコンテキストで呼び出されます。

ドキュメントが作成された後、スクリプトが実行される前に関数が呼び出されます。これは、JavaScript環境を変更する場合(例:`Math.random`をシードする場合)に役立ちます。

シグネチャ:

class Page {
abstract evaluateOnNewDocument<
Params extends unknown[],
Func extends (...args: Params) => unknown = (...args: Params) => unknown,
>(
pageFunction: Func | string,
...args: Params
): Promise<NewDocumentScriptEvaluation>;
}

パラメータ

パラメータ説明
pageFunctionFunc | stringブラウザコンテキストで評価される関数
argsParamspageFunctionに渡す引数

戻り値

Promise<NewDocumentScriptEvaluation>

ページがロードされる前にnavigator.languagesプロパティをオーバーライドする例

// preload.js

// overwrite the `languages` property to use a custom getter
Object.defineProperty(navigator, 'languages', {
get: function () {
return ['en-US', 'en', 'bn'];
},
});

// In your puppeteer script, assuming the preload.js file is
// in same folder of our script.
const preloadFile = fs.readFileSync('./preload.js', 'utf8');
await page.evaluateOnNewDocument(preloadFile);