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>;
}
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
pageFunction | Func | string | ブラウザコンテキストで評価される関数 |
args | Params | pageFunction に渡す引数 |
戻り値
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);