Playwright 如何用 PLAYWRIGHT_BROWSERS_PATH 自定义浏览器二进制的下载与安装位置?
【免费下载链接】playwrightPlaywright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.项目地址: https://gitcode.com/GitHub_Trending/pl/playwright
用 Playwright CLI 安装浏览器后,浏览器二进制默认落在操作系统的缓存目录里:Windows 上是%USERPROFILE%\AppData\Local\ms-playwright,macOS 上是~/Library/Caches/ms-playwright,Linux 上是~/.cache/ms-playwright,装完会占用几百 MB 磁盘。如果你希望把浏览器下载并安装到指定目录——比如共享给多个 Playwright 版本,或放进项目的node_modules里随项目走——只需在安装和运行测试前设置PLAYWRIGHT_BROWSERS_PATH环境变量。本文的操作依据是仓库中的浏览器文档。
准备:确认当前浏览器装在哪里
先确认默认目录里的浏览器版本和占用空间。macOS/Linux 上可以用文档给出的方式查看各浏览器目录的大小(以下输出为文档示例,实际数值因版本而异):
du -hs ~/Library/Caches/ms-playwright/* 281M chromium-XXXXXX 187M firefox-XXXX 180M webkit-XXXX注意一个前提:每个版本的 Playwright 对应特定版本的浏览器二进制,升级 Playwright 后往往需要重新运行install。这也是自定义安装目录的主要动机之一——把浏览器放在自己管理的位置,方便跨版本共享和清理。
安装时指定目录:PLAYWRIGHT_BROWSERS_PATH
主路径以 JS 绑定 + bash 为例,$HOME/pw-browsers是文档中的示例路径,替换成你实际想要的目录即可:
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers npx playwright installWindows 上对应写法(cmd 与 PowerShell 各一种):
set PLAYWRIGHT_BROWSERS_PATH=%USERPROFILE%\pw-browsers npx playwright install$Env:PLAYWRIGHT_BROWSERS_PATH="$Env:USERPROFILE\pw-browsers" npx playwright install其他语言绑定使用同一个环境变量,只是安装命令换成各自的 CLI:
# Python pip install playwright PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers python -m playwright install# Java PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="install"# .NET PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers pwsh bin/Debug/netX/playwright.ps1 install如果希望本机所有终端都生效,文档建议把PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers的 export 语句写进.bashrc。
运行脚本与测试时也指向同一目录
环境变量只对设置它的进程生效,所以后续运行 Playwright 时同样要带上它,Playwright 才会到这个共享位置查找浏览器:
# JS PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers npx playwright test # Python PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers python playwright_script.py # Java PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers mvn test # .NET PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers dotnet test如果已经按上一节把变量写进了.bashrc,日常执行就不再需要每次手动前缀变量。
验证安装位置是否生效
文档提供的检查方式是列出机器上所有 Playwright 安装使用的浏览器:
npx playwright install --list该命令会打印出所有 Playwright 安装位置中的浏览器清单。另外可以用与上文相同的方式查看目标目录,确认浏览器目录确实落在那里:
du -hs $HOME/pw-browsers/*最后用同一环境变量跑一次测试(如PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers npx playwright test),测试能正常启动浏览器,即说明运行侧也指向了该目录。
可选:用 PLAYWRIGHT_BROWSERS_PATH=0 做 hermetic 安装
JS 侧有一个特殊取值:把PLAYWRIGHT_BROWSERS_PATH设为0时,二进制会放到本地目录node_modules/playwright-core/.local-browsers,随项目而不是随用户目录走:
# Places binaries to node_modules/playwright-core/.local-browsers PLAYWRIGHT_BROWSERS_PATH=0 npx playwright installPython 侧的 library-python 文档 给出了一个配套场景:用 PyInstaller 打独立可执行文件时,希望把浏览器一并打包进去:
PLAYWRIGHT_BROWSERS_PATH=0 playwright install chromium pyinstaller -F main.py文档提醒:打包浏览器会生成更大的可执行文件,建议只打包实际用到的浏览器,所以上例只安装了chromium。
限制与维护
不影响品牌浏览器:文档明确说明
PLAYWRIGHT_BROWSERS_PATH不改变 Google Chrome 和 Microsoft Edge 的安装位置,这两个品牌浏览器安装在操作系统的全局默认位置。自动清理(GC):Playwright 会记录哪些包需要这些浏览器,当你升级到更新的 Playwright 版本时,不再被任何客户端使用的旧版本浏览器会被自动删除。如果不想清理,可设置
PLAYWRIGHT_SKIP_BROWSER_GC=1,或给安装命令加--no-remove:npx playwright install --no-remove卸载:确认不再需要时,
npx playwright uninstall会移除当前 Playwright 安装对应的 chromium、firefox、webkit 浏览器(此命令会实际删除浏览器文件,执行前确认目录里没有你自己放进去的东西);加--all则会连带移除机器上其他 Playwright 安装的浏览器。
浏览器装进指定目录、--list能看到对应版本、测试在该目录下正常启动,这一套路径就走完了。
【免费下载链接】playwrightPlaywright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.项目地址: https://gitcode.com/GitHub_Trending/pl/playwright
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考