用途:在持续运行的 JavaScript REPL 中驱动 Playwright,调试本地 Web 或 Electron 应用,让浏览器或 Electron 会话在多次编辑间保持存活,进行反复重载而非一次性重跑。适用于迭代本地应用、验证 Electron 行为、需要在同一会话中完成功能 QA 与视觉 QA 签核的场景;若只需简短终端工作流,应改用 playwright。
前置条件:需要具备持久 JavaScript 执行能力的代理或运行时。在 Codex 中该能力为 js_repl,可在 ~/.codex/config.toml 中启用: [features] js_repl = true 也可用 --enable js_repl 或 -c features.js_repl=true 启动新会话。其他代理需有等价 REPL,否则回退到 playwright。启用后需新开会话以刷新工具列表;按运行时要求可在禁用沙箱下运行,并从待调试项目目录执行安装。
一次性安装: test -f package.json || npm init -y npm install playwright 仅 Web 或移动端模拟可执行 npx playwright install chromium;仅 Electron 且目标工作区就是应用本身时可 npm install --save-dev electron。切换工作区需重复安装。
核心流程:先用 var 声明并复用顶层句柄(browser、context、page、mobilePage、electronApp、appWindow)。Web 应用默认用显式视口迭代,原生窗口模式作为单独验证轮次;Electron 默认按原生窗口行为处理。代码变更后,渲染进程改动用 reloadWebContexts() 或 appWindow.reload 重载,主进程、预加载或启动改动需重启 Electron。功能 QA 使用真实用户输入(键盘、鼠标、点击、触摸);视觉 QA 独立进行,检查视口适配、截图,覆盖共享 QA 清单中的状态与模式。仅当任务真正完成才清理会话,REPL 重置会销毁句柄,应视为恢复手段而非日常清理。
限制:若运行时无持久 REPL 则无法使用;原生窗口与视口模式切换需重置上下文;具体价格、平台支持等细节资料未提供。