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

如何用Playwright运行本地已安装Firefox(支持自定义构建)

解决Playwright Core启动本地Firefox失败的问题

我帮你分析下这个问题——你用Playwright Core启动本地安装的Firefox时遇到浏览器直接退出的错误,而Chrome能正常运行,核心原因是Firefox稳定版默认没有启用Playwright需要的调试协议支持,加上你的代码里启动后没有任何页面操作,浏览器可能直接因无任务自动退出。下面是具体的解决办法:

1. 添加调试启动参数

Firefox稳定版需要显式启用调试服务器,Playwright才能建立连接。修改你的代码,在launch选项中添加args参数:

// test.mjs
import { firefox } from 'playwright-core';

// Windows路径,Mac替换为 "/Applications/Firefox.app/Contents/MacOS/firefox"
const executablePath =  "C:\\Program Files\\Mozilla Firefox\\firefox.exe";

async function main() {
  const browser = await firefox.launch({
    executablePath,
    headless: false,
    // 关键:启用调试服务器,让Playwright能成功连接
    args: ['-start-debugger-server', '0'],
  });

  // 新增页面操作,避免浏览器启动后无任务自动退出
  const page = await browser.newPage();
  await page.goto('https://example.com');
  console.log('Firefox启动成功,页面已加载!');

  // 如需自动关闭,可取消注释下面一行
  // await browser.close();
}

main().catch(err => console.error('错误详情:', err));

2. 优先使用Firefox Nightly版本

如果添加参数后还是有问题,推荐切换到Firefox Nightly版本。Nightly默认支持Playwright所需的调试特性,兼容性更好,不需要额外参数就能正常启动。你只需要把executablePath换成Nightly的安装路径即可:

  • Windows:C:\\Program Files\\Firefox Nightly\\firefox.exe
  • Mac:/Applications/Firefox Nightly.app/Contents/MacOS/firefox

3. 排查路径与权限问题

  • 确保executablePath的路径完全正确,Mac上要注意是.app内部的firefox可执行文件,而不是直接指向.app文件
  • 确认你有足够的权限读取该路径下的Firefox程序

为什么Chrome能正常运行?

Chrome默认启用了远程调试协议,Playwright可以直接连接;而Firefox稳定版出于安全考虑,默认关闭了调试端口,必须通过启动参数显式开启,这就是两者的核心差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 18:30:56