Puppeteer evaluateメソッドのPageFunctionに引数を渡す

こんにちは。レモンティーです。

今回はPuppeteerのevaluateメソッドのPageFunctionへ引数を渡すときの話です。(公式

こういう風に書くと出力はundefinedです。

index.js

  const a = 'text';
  const b = 283;
  const c = {a:21,b:23};

  const x = await page.evaluate(a,b,c => {
      return `${a} ${b} ${c}`;
  });
  console.log(x);

PageFunctionに渡す引数は第二引数に渡す必要があるようです。
なので下のように書くとちゃんと渡されます。
出力はtext 283 [object Object] となります。

index.js

  const x = await page.evaluate(arg => {
    const {a,b,c} = arg;  
    return `${a} ${b} ${c}`;
  },{a,b,c}); 
  console.log(x);

もっとシンプルにこんな風にも書けます。出力は先ほどと同じです。

index.js

  const x = await page.evaluate(({a,b,c}) => {
      return `${a} ${b} ${c}`;
  },{a,b,c});
  console.log(x);

今回はこれでおしまいです。
www.sawalemontea.com