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

技术问询:程序已启动Headless模式Chromium,能否用Puppeteer再启动非Headless实例?

当然可以!

完全没问题——Puppeteer每次调用puppeteer.launch()都会启动一个独立的Chromium实例,这些实例之间相互隔离,不会共享状态或配置。哪怕你已经有一个Headless模式的Chromium在运行,依然可以再启动一个非Headless(可视化)的实例,两者互不干扰。

给你举个简单的代码示例,直观展示如何同时运行两个不同模式的实例:

const puppeteer = require('puppeteer');

async function runMultipleInstances() {
  // 启动Headless模式的Chromium实例
  const headlessBrowser = await puppeteer.launch({
    headless: 'new', // 新版Headless模式,也可传true使用旧版
    args: ['--disable-gpu']
  });

  // 启动非Headless模式的Chromium实例
  const visibleBrowser = await puppeteer.launch({
    headless: false, // 明确设置为false,启动可视化窗口
    args: ['--start-maximized'] // 可选配置:启动时自动最大化窗口
  });

  // 分别操作两个实例
  const headlessPage = await headlessBrowser.newPage();
  await headlessPage.goto('https://example.com');
  console.log('Headless实例已打开example.com');

  const visiblePage = await visibleBrowser.newPage();
  await visiblePage.goto('https://google.com');
  console.log('可视化实例已打开google.com');

  // 按需关闭实例(如果不需要长期运行的话)
  // await headlessBrowser.close();
  // await visibleBrowser.close();
}

runMultipleInstances();

额外提醒几个细节:

  • 每个实例会占用独立的系统资源(内存、CPU),如果启动多个实例,要留意资源消耗情况
  • 在部分Linux环境下,启动非Headless实例可能需要额外配置(比如安装桌面环境、添加--no-sandbox参数),但Windows/macOS环境下一般直接就能运行
  • 你可以给每个实例设置完全不同的启动参数(比如窗口大小、代理、用户数据目录等),彼此的配置完全独立

内容的提问来源于stack exchange,提问作者Proketel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 17:57:41