调用setContent时Puppeteer意外关闭页面的调试求助
Puppeteer页面自动关闭问题求助
调用page.setContent时遇到Puppeteer自动关闭页面的问题,即使仅打开页面后等待,也会触发page.close()调用,最终抛出TargetCloseError。以下是相关代码、日志及初步排查信息,请求协助定位原因:
相关代码
chrome = await puppeteer.launch(); page = await chrome.newPage(); await page.setUserAgent(ua); await page.setViewport({width: Number(width), height: Number(height)}); console.warn("here4"); if (input) { console.warn("input found"); await page.setContent(input); } console.warn("here5");
运行日志
2025-01-20T00:54:47.099Z puppeteer:browsers:launcher Launching /home/user/.cache/puppeteer/chrome-headless-shell/linux-132.0.6834.83/chrome-headless-shell-linux64/chrome-headless-shell --allow-pre-commit-input --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-crash-reporter --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-hang-monitor --disable-infobars --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-search-engine-choice-screen --disable-sync --enable-automation --export-tagged-pdf --force-color-profile=srgb --generate-pdf-document-outline --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --disable-features=Translate,AcceptCHFrame,MediaRouter,OptimizationHints,ProcessPerSiteUpToMainFrameThreshold,IsolateSandboxedIframes --enable-features=PdfOopif --headless --hide-scrollbars --mute-audio about:blank --remote-debugging-port=0 --user-data-dir=/tmp/puppeteer_dev_chrome_profile-BQX8Ok { detached: true, env: {}, stdio: [ 'pipe', 'ignore', 'pipe' ] } 2025-01-20T00:54:47.116Z puppeteer:browsers:launcher Launched 2692983 here4 input found 2025-01-20T00:54:47.490Z puppeteer:browsers:launcher Trying to kill 2692983 2025-01-20T00:54:47.490Z puppeteer:browsers:launcher Browser process 2692983 exists /home/user/v14-staging/apps/node_modules/puppeteer-core/lib/cjs/puppeteer/common/CallbackRegistry.js:80 this._reject(callback, new Errors_js_1.TargetCloseError('Target closed'));
初步排查信息
- 日志中“Trying to kill”来自Process类的kill()方法,是对目标关闭的响应;
- 协议追踪显示
page.setViewport后自动发送了Target.closeTarget指令,但代码中未主动调用; - 即使仅打开页面后等待,也会触发
page.close()调用。
内容的提问来源于stack exchange,提问作者racitup
相关产品推荐
相关产品推荐

