You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不关闭浏览器的前提下终止Puppeteer的Node.js脚本?

解决方案:终止Node.js脚本但保留Puppeteer浏览器窗口

要实现启动浏览器后终止脚本但不关闭浏览器,并允许后续脚本复用该浏览器实例,核心是先断开脚本与浏览器的连接,再终止Node.js进程,同时保存浏览器的WebSocket端点(WS Endpoint)。

关键操作逻辑

  • 调用browser.disconnect():解除Node.js进程与浏览器的绑定,仅切断两者通信链路,不会关闭浏览器
  • 保存browser.wsEndpoint()到本地文件:为后续脚本提供连接已运行浏览器的入口
  • 执行process.exit(0):优雅终止Node.js脚本,此时因已断开连接,浏览器不会被触发关闭

修改后的完整代码

const puppeteer = require('puppeteer');
const fs = require('fs').promises;

(async () => {
  const browser = await puppeteer.launch({ 
    headless: false,
    // 可选:配置用户数据目录,保留Cookie和浏览状态
    userDataDir: './browser-user-data' 
  });
  const page = await browser.newPage();
  
  // 执行你的自动化任务
  // await page.goto('https://target-site.com');
  // ... 自定义操作逻辑

  // 监听输入触发退出
  process.stdin.on('data', async (data) => {
    const input = data.toString().trim();
    if (input === 'exit') {
      // 1. 断开与浏览器的连接
      browser.disconnect();
      // 2. 保存WS端点到本地文件
      const wsEndpoint = browser.wsEndpoint();
      await fs.writeFile('./browser-ws-endpoint.txt', wsEndpoint);
      console.log('浏览器WS端点已保存,脚本将终止,浏览器保持运行');
      // 3. 优雅终止Node.js进程
      process.exit(0);
    }
  });
})();

后续脚本连接已打开的浏览器

创建新脚本,读取保存的WS端点即可直接复用已运行的浏览器实例:

const puppeteer = require('puppeteer');
const fs = require('fs').promises;

(async () => {
  // 读取保存的WS端点
  const wsEndpoint = await fs.readFile('./browser-ws-endpoint.txt', 'utf8');
  // 连接到已启动的浏览器
  const browser = await puppeteer.connect({
    browserWSEndpoint: wsEndpoint,
    defaultViewport: null // 保持原浏览器窗口的视口设置
  });
  
  // 复用浏览器执行任务
  const pages = await browser.pages();
  const targetPage = pages[0]; // 获取第一个标签页
  await targetPage.goto('https://another-site.com');
  // ... 后续操作
  
  // 注意:仅调用browser.close()才会关闭浏览器,否则浏览器会持续运行
})();

原方法无效的原因说明

  • 直接执行process.exit()时,Puppeteer默认会清理所有关联的浏览器实例,导致浏览器关闭;但先调用browser.disconnect()解绑后,process.exit()不会触发浏览器关闭逻辑
  • browser.disconnect()仅断开通信,不会终止Node.js脚本,必须配合process.exit()才能结束当前脚本进程

内容的提问来源于stack exchange,提问作者Full cracꝄҼr alcɧҼᵯjst

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 02:23:09