vscode里找不到node命令,根本原因是终端未继承shell的path:macos/linux需设terminal.integrated.defaultprofile为zsh/bash并重启,或手动配置terminal.integrated.env.osx/.linux添加nvm路径;windows需检查系统path是否含node安装目录并重启vscode。

VSCode里找不到Node命令,先确认PATH和终端继承关系
VSCode默认终端(Ctrl+`)不自动加载系统Shell的PATH,尤其在macOS或Linux下用zsh/bash配置过nvm时,node、npx常报“command not found”。这不是Playwright的问题,是环境没透进来。
- 打开VSCode设置(Cmd+, / Ctrl+,),搜
terminal.integrated.defaultProfile,设为你的Shell(如zsh) - 关掉所有终端,重启VSCode,再开新终端,运行
which node确认路径 - 如果仍不行,在VSCode设置里加
terminal.integrated.env.linux(或.osx)并填入{"PATH": "/home/xxx/.nvm/versions/node/v20.11.1/bin:${PATH}"}(路径按nvm ls结果调整)
用npm init初始化项目时别跳过package.json的type字段
Playwright录制脚本默认生成ES Module语法(import),但Node.js默认按CommonJS解析。不声明"type": "module",运行时会报Cannot use import statement outside a module。
使用Playwright API直接进行浏览器自动化。导航网站、与元素交互、提取数据、截图、生成PDF、录制视频,自动化复杂工作流程。比MCP方法更可靠。
- 执行
npm init -y后,手动编辑package.json,加一行"type": "module" - 或者初始化时用
npm init -y && echo '{"type":"module"}' > package.json - 若团队需兼容CommonJS,也可用
.mjs后缀命名脚本,但录制器生成的文件名固定为test.spec.ts或.js,改后缀不如直接设type
playwright install和playwright install-deps必须分步执行
npx playwright install只下载浏览器二进制,不装系统依赖。Linux上缺libglib2.0-0、macOS缺libicu会导致启动失败,错误信息像Error: Failed to launch browser或GLib-GObject-CRITICAL。
- 先运行
npx playwright install(选chromium/firefox/webkit) - 再运行
npx playwright install-deps——这步在Windows上静默通过,Linux/macOS会提示缺失包并尝试apt/brew安装 - Linux用户若用非root账户,
install-deps可能因权限失败,此时需手动sudo apt-get install libglib2.0-0 libgtk-3-0 libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb
录制脚本时--project参数影响输出路径和配置绑定
Playwright CLI的codegen命令默认把脚本写到./tests/,但如果你项目根目录已有playwright.config.ts且定义了projects,不指定--project会导致录制脚本无法匹配配置里的use(比如baseURL、timeout),后续运行直接报错。
- 先检查配置:运行
npx playwright test --list看有哪些project name - 录制时明确指定:
npx playwright codegen --project=chromium --output=test.spec.ts https://example.com - 如果没配project,就删掉
playwright.config.ts或确保它只含基础use,否则录制脚本里不会自动注入baseURL,得手动补
install-deps漏了、type没设、或VSCode终端根本没读到nvm——这些点卡住的人,往往反复重装Playwright却没动PATH或config。










