NodeJS中Puppeteer脚本无效果:无法启动浏览器及生成截图
Puppeteer截图脚本未执行的解决方法
核心问题及修复步骤
未执行定义的异步函数
你代码中仅定义了匿名异步函数,但没有调用它,导致整个逻辑完全没运行。需要在函数末尾添加()触发执行。ES模块配置缺失
使用import语法需要将项目设置为ES模块模式,否则Node.js会报错。修改package.json,在顶层添加"type": "module"。可选:浏览器启动参数调整
本地调试时可以设置headless: false显示浏览器窗口,方便排查问题;生产环境可使用默认的无头模式(Puppeteer v19+默认是headless: 'new')。
修正后的代码
import * as puppeteer from 'puppeteer'; (async ()=> { // 本地调试打开headless: false,生产环境可移除该参数使用默认无头模式 const browser = await puppeteer.launch({ headless: false }); const page = await browser.newPage(); await page.goto('https://github.com/puppeteer/puppeteer'); await page.screenshot({path: 'my.png'}); await browser.close(); // 建议添加,避免浏览器进程残留 })(); // 关键:添加()执行异步函数
修正package.json
打开项目根目录的package.json,添加"type": "module"配置:
{ "type": "module", "name": "your-project-name", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "puppeteer": "^x.x.x" } }
完成以上修改后,重新执行node index.js,即可启动浏览器并生成截图。
内容的提问来源于stack exchange,提问作者Bhavesh Kadiya
相关产品推荐
相关产品推荐

