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

這條命令會把目前瀏覽器 context 中的狀態保存到 auth.json。之後如果想重用登入狀態,通常就是從這一步開始。

02 載入既有的 storage state

已有狀態檔後,可以在啟動時直接載入。

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

它會用 auth.json 裡的狀態啟動瀏覽器 context。最常見的用途,就是跳過重複登入,直接進入已登入環境。

03 查看目前 cookies

如果你只是想確認目前 session 裡到底有哪些 cookies,可以直接查看。

1
playwright-cli cookies

這條命令會列出目前 context 中的 cookies,適合用來排查登入狀態是否存在、cookie 是否寫入成功。

04 設定 cookies

如果你已經有 cookie 資料,也可以直接寫入。

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

這個用法適合調試驗證流程、重現特定 session,或在腳本執行前手動注入 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 適合查看目前 session 裡的暫時狀態。

1
playwright-cli session-storage

這條命令會輸出目前頁面的 sessionStorage。如果某個頁面流程依賴一次性的 session 資料,可以從這裡檢查。

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 設計