nodejs如何使用puppeteer-core修复`browser.newPage is a function`?

时间:2019-05-07 22:30:41

标签: node.js puppeteer

我正在尝试使用pupetteer-core,但是当我运行代码时。

const puppeteer = require('puppeteer-core');
module.exports= run = () => {
    const url = 'https://example.com'
    const browser = puppeteer.launch();
    const page = browser.newPage().then(function(page){
    page.goto(url)
    return browser
};

run().catch(console.error.bind(console))

我收到此错误 TypeError: browser.newPage is not a function

1 个答案:

答案 0 :(得分:1)

您的代码中的问题是puppeteer与Promises一起使用,这意味着大多数函数将直接返回Promise而不是值。这意味着您必须使用then函数或await语句来获取值。

代码示例

module.exports = run = async () => {
    const url = 'https://example.com';
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto(url);
    return browser;
};

请注意,该函数现在被标记为async,使其隐式返回Promise。这意味着要等待run()函数完成,您将不得不从另一个async函数内部调用它,如下所示:

(async () {
    const browser = await run();
})();