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

hen*_*dry 1 javascript async-await puppeteer

我希望我的结果是一个函数,它在浏览器上下文中运行,表现得像一个函数。所以我可以要求它获取不同的资源。然而这个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()
})()
Run Code Online (Sandbox Code Playgroud)

tom*_*aug 8

您可以evaluate像这样将参数传递给方法:

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

您可以在此处文档中阅读有关该方法参数的更多信息