如果你用 Playwright CLI 做浏览器自动化,storage state 基本就是最常用的能力之一。它的作用很直接:把当前浏览器里的登录态和本地状态保存下来,后面继续复用,避免每次都重新登录。
01 保存当前 storage state
最常见的场景,就是先登录一次,再把当前状态导出到文件。
|
|
这条命令会把当前浏览器上下文中的状态保存到 auth.json。后面如果想复用登录态,通常就是从这一步开始。
02 加载已有 storage state
已经有状态文件后,可以在启动时直接加载。
|
|
它会用 auth.json 里的状态启动浏览器上下文。常见用途就是跳过重复登录,直接进入已登录环境。
03 查看当前 cookies
如果你只是想确认当前会话里到底有哪些 cookies,可以直接查看。
|
|
这条命令会列出当前上下文中的 cookies。适合排查登录态是否存在、cookie 是否写入成功。
04 设置 cookies
如果你已经有 cookie 数据,也可以直接写入。
|
|
这个用法适合调试鉴权、复现特定会话,或者在脚本前手动注入 cookie 条件。
05 读取 localStorage
有些站点的登录态或前端状态不只在 cookies 里,也会放在 localStorage。
|
|
这条命令用于查看当前页面的 localStorage 内容。排查“明明像是登录了,但页面行为不对”时,这一步很有用。
06 写入 localStorage
如果需要模拟某些前端状态,也可以直接设置。
|
|
它会把指定键值写入 localStorage。常见用途是注入 token、偏好配置或某些前端开关。
07 读取 sessionStorage
sessionStorage 适合看当前会话里的临时状态。
|
|
这条命令会输出当前页面的 sessionStorage。如果某个页面逻辑依赖一次性会话数据,可以从这里检查。
08 写入 sessionStorage
需要时,也可以手动设置 sessionStorage。
|
|
它适合复现某些依赖临时状态的页面行为,或者补齐初始化步骤需要的字段。
09 查看 IndexedDB
对于更重的 Web 应用,真正关键的数据可能在 IndexedDB 里。
|
|
这条命令用于查看当前页面的 IndexedDB 数据。遇到复杂单页应用、离线缓存或本地数据库式状态时,可以优先检查这里。
10 一个最实用的工作流
如果你只是想稳定复用登录态,最简单的流程通常是这样:
- 先打开站点并手动完成登录。
- 执行下面这条命令保存状态:
|
|
- 后续运行时直接加载:
|
|
如果加载后页面还是异常,再继续检查:
playwright-cli cookiesplaywright-cli local-storageplaywright-cli session-storageplaywright-cli indexed-db
这个顺序已经能覆盖大部分“状态没恢复完整”的问题。
11 使用时要注意什么
有三点最值得注意:
storage state文件本质上是敏感数据,里面可能包含登录 cookie 或 token,不要随便提交到仓库。- 只恢复 cookies 不一定够,很多现代站点还依赖
localStorage、sessionStorage或IndexedDB。 - 状态文件不是永久有效,cookie 过期、账户变更或环境切换后,通常都要重新生成。
12 快速总结
如果只记一句话:
Playwright CLI 的 storage state,就是把浏览器当前状态保存下来,再在后续任务里继续用。
而在实际排查里,最常用的一组命令就是这些:
|
|
先保存,再加载;如果不对,再分层检查 cookies 和各类本地存储,基本就是这份参考文档最实用的部分。
参考链接
- Playwright CLI storage-state 参考文档:https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/storage-state.md
- Playwright CLI 项目主页:https://github.com/microsoft/playwright-cli