首页 > 解决方案 > 在 javascript 函数中执行 puppeteer 代码

问题描述

嗯..,我puppeteer也是新手electron

我有一个基本的 puppeteer 代码,如下所示:

const puppeteer = require('puppeteer');


(async () => 
{
    const browser = await puppeteer.launch({ headless: false });

    const page = await browser.newPage();
    await page.setViewport({ width: 1366, height: 768});

    await page.goto('https://www.google.co.in', {waitUntil: 'networkidle2'});

})();

那太棒了。现在我不想在我的电子应用程序启动时打开浏览器。相反,我想在特定事件和 javascript 函数中打开它。每当我想要时都会调用它。如下 :

global.RunCommand = function(param)
{
    const browser = await puppeteer.launch({ headless: false });

    const page = await browser.newPage();
    await page.setViewport({ width: 1366, height: 768});

    await page.goto('https://www.google.co.in', {waitUntil: 'networkidle2'});


    return 'Done : ' + param;
}

抛出:

const browser = await puppeteer.launch({ headless: false });
                    ^^^^^^^^^

SyntaxError: Unexpected identifier
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:606:28)
at Object.Module._extensions..js (module.js:653:10)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:504:12)
at Function.Module._load (module.js:496:3)

任何帮助将不胜感激,并提前感谢。

标签: javascriptelectronpuppeteer

解决方案


global.RunCommand异步函数,您必须始终在异步函数中声明 异步

global.RunCommand = async function(param)
{
 ...
}

推荐阅读