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

时间:2017-10-09 08:45:31

标签: 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()
})()

1 个答案:

答案 0 :(得分:2)

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

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

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