ホームページ >ウェブフロントエンド >jsチュートリアル >Puppeteer の `page.evaluate()` 関数に変数を正しく渡すにはどうすればよいですか?
Puppeteer では、page.evaluate() 関数を使用して、Web ページ内のカスタム JavaScript を実行できます。ブラウザ。ただし、評価されたコード内で使用するために Node から page.evaluate() 関数に変数を渡す方法はすぐにはわかりません。
変数を渡そうとするときの一般的なアプローチは、アロー関数構文を使用することです。 :
const links = await page.evaluate((evalVar) => {...});
ただし、アロー関数内で evalVar が未定義であるというエラーが発生した場合は、変数が関数に渡されていないことを意味します
この問題を解決するには、変数を引数としてページ関数に渡す必要があります。調整された構文は次のとおりです。
const links = await page.evaluate((evalVar) => {...}, evalVar); // 1. pass variable as an argument
ここでは、変数 evalVar が追加の引数としてアロー関数に渡され、評価されたコード内でアクセスできるようになります。
この手法は、複数のパラメータを渡す場合に機能します。変数も同様です。 page.evaluate() 関数呼び出しに引数を追加するだけです:
await page.evaluate((a, b, c) => { console.log(a, b, c) }, a, b, c)
これらはサポートされているため、渡された引数が JSON としてシリアル化可能であるか、ブラウザ内オブジェクトの JSHandle であることを確認することが重要です。 page.evaluate().
に変数を渡すための型以上がPuppeteer の `page.evaluate()` 関数に変数を正しく渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。