ホームページ >ウェブフロントエンド >jsチュートリアル >Puppeteer の `page.evaluate()` 関数に変数を渡すにはどうすればよいですか?

Puppeteer の `page.evaluate()` 関数に変数を渡すにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-16 08:30:15881ブラウズ

How to Pass Variables to Puppeteer's `page.evaluate()` Function?

Puppeteer の評価関数に変数を渡す方法

Puppeteer を使用してページを評価する場合、多くの場合、ページ内で使用するために変数を評価関数に渡す必要があります。ページのコンテキスト。これを実現するには、変数を page.evaluate() 関数に渡す正しい方法を理解することが重要です。

提供された Puppeteer スクリプトでは、変数 evalVar を評価関数リンクに渡そうとすると失敗し、その結果、関数内でアクセスすると変数が未定義になります。これは、変数を関数に直接渡すことができないために発生します。

解決策は、変数を引数として評価関数に渡すことです。以下の変更をリンク関数に追加すると、変数 evalVar が渡され、関数内でアクセスできるようになります。

const links = await page.evaluate((evalVar) => {
  console.log('evalVar:', evalVar); // 2. should be defined now
  ...
}, evalVar); // 1. pass variable as an argument

page.evaluate() を呼び出すときに追加の引数を含めることで、複数の変数を渡すことができることに注意してください。すべての引数が JSON としてシリアル化可能であるか、ブラウザ内オブジェクトの JSHandle であることを確認することが重要です。これらのガイドラインに従うことで、Puppeteer の評価関数に変数を正常に渡し、ページのコンテキスト内で変数にアクセスできます。

以上がPuppeteer の `page.evaluate()` 関数に変数を渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。