Playwright CLI storage state 用法:保存登录态、读取 Cookies 与本地存储

基于官方 storage-state 参考文档,整理 Playwright CLI 中 storage state、Cookies、localStorage、sessionStorage 和 IndexedDB 的常用命令与简明说明。

如果你用 Playwright CLI 做浏览器自动化,storage state 基本就是最常用的能力之一。它的作用很直接:把当前浏览器里的登录态和本地状态保存下来,后面继续复用,避免每次都重新登录。

01 保存当前 storage state

最常见的场景,就是先登录一次,再把当前状态导出到文件。

1
playwright-cli storage-state save auth.json

这条命令会把当前浏览器上下文中的状态保存到 auth.json。后面如果想复用登录态,通常就是从这一步开始。

02 加载已有 storage state

已经有状态文件后,可以在启动时直接加载。

1
playwright-cli --storage-state auth.json

它会用 auth.json 里的状态启动浏览器上下文。常见用途就是跳过重复登录,直接进入已登录环境。

03 查看当前 cookies

如果你只是想确认当前会话里到底有哪些 cookies,可以直接查看。

1
playwright-cli cookies

这条命令会列出当前上下文中的 cookies。适合排查登录态是否存在、cookie 是否写入成功。

04 设置 cookies

如果你已经有 cookie 数据,也可以直接写入。

1
playwright-cli cookies set '[{"name":"session","value":"abc","domain":"example.com","path":"/"}]'

这个用法适合调试鉴权、复现特定会话,或者在脚本前手动注入 cookie 条件。

05 读取 localStorage

有些站点的登录态或前端状态不只在 cookies 里,也会放在 localStorage

1
playwright-cli local-storage

这条命令用于查看当前页面的 localStorage 内容。排查“明明像是登录了,但页面行为不对”时,这一步很有用。

06 写入 localStorage

如果需要模拟某些前端状态,也可以直接设置。

1
playwright-cli local-storage set token abc123

它会把指定键值写入 localStorage。常见用途是注入 token、偏好配置或某些前端开关。

07 读取 sessionStorage

sessionStorage 适合看当前会话里的临时状态。

1
playwright-cli session-storage

这条命令会输出当前页面的 sessionStorage。如果某个页面逻辑依赖一次性会话数据,可以从这里检查。

08 写入 sessionStorage

需要时,也可以手动设置 sessionStorage

1
playwright-cli session-storage set key value

它适合复现某些依赖临时状态的页面行为,或者补齐初始化步骤需要的字段。

09 查看 IndexedDB

对于更重的 Web 应用,真正关键的数据可能在 IndexedDB 里。

1
playwright-cli indexed-db

这条命令用于查看当前页面的 IndexedDB 数据。遇到复杂单页应用、离线缓存或本地数据库式状态时,可以优先检查这里。

10 一个最实用的工作流

如果你只是想稳定复用登录态,最简单的流程通常是这样:

  1. 先打开站点并手动完成登录。
  2. 执行下面这条命令保存状态:
1
playwright-cli storage-state save auth.json
  1. 后续运行时直接加载:
1
playwright-cli --storage-state auth.json

如果加载后页面还是异常,再继续检查:

  • playwright-cli cookies
  • playwright-cli local-storage
  • playwright-cli session-storage
  • playwright-cli indexed-db

这个顺序已经能覆盖大部分“状态没恢复完整”的问题。

11 使用时要注意什么

有三点最值得注意:

  • storage state 文件本质上是敏感数据,里面可能包含登录 cookie 或 token,不要随便提交到仓库。
  • 只恢复 cookies 不一定够,很多现代站点还依赖 localStoragesessionStorageIndexedDB
  • 状态文件不是永久有效,cookie 过期、账户变更或环境切换后,通常都要重新生成。

12 快速总结

如果只记一句话:

Playwright CLIstorage state,就是把浏览器当前状态保存下来,再在后续任务里继续用。

而在实际排查里,最常用的一组命令就是这些:

1
2
3
4
5
6
playwright-cli storage-state save auth.json
playwright-cli --storage-state auth.json
playwright-cli cookies
playwright-cli local-storage
playwright-cli session-storage
playwright-cli indexed-db

先保存,再加载;如果不对,再分层检查 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
记录并分享
使用 Hugo 构建
主题 StackJimmy 设计