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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-27 20:22:10264ブラウズ

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

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

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