如何将参数传递给 page.evaluate?

How do pass arguments to a page.evaluate?

我希望我的结果是一个函数,即 运行 在浏览器上下文中表现得像一个函数。所以我可以要求它获取不同的资源。然而,这个 p 论点不起作用。为什么,我该如何解决?

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({args: ['--no-sandbox'], headless: false})
  const page = await browser.newPage()
  await page.goto('https://hendry.iki.fi')

  const p = '/about'

  const result = await page.evaluate((p) => {
    return fetch(p)
    .then((response) => {
      if (response.ok) {
        return response.text()
      }
    })
  })

  console.log(result)

  await browser.close()
})()

您将参数传递给 evaluate 方法,如下所示:

page.evaluate((a, b) => {
   // you can use `a` and `b` here
}, a, b);

您可以在 docs here 中阅读有关方法参数的更多信息。