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 サイトの他の関連記事を参照してください。