如果你用 Playwright CLI 做瀏覽器自動化,storage state 幾乎就是最常用的能力之一。它的作用很直接:把目前瀏覽器裡的登入狀態和本地狀態保存下來,後面繼續重用,避免每次都重新登入。
01 保存目前的 storage state
最常見的情境,就是先登入一次,再把目前狀態匯出到檔案。
|
|
這條命令會把目前瀏覽器 context 中的狀態保存到 auth.json。之後如果想重用登入狀態,通常就是從這一步開始。
02 載入既有的 storage state
已有狀態檔後,可以在啟動時直接載入。
|
|
它會用 auth.json 裡的狀態啟動瀏覽器 context。最常見的用途,就是跳過重複登入,直接進入已登入環境。
03 查看目前 cookies
如果你只是想確認目前 session 裡到底有哪些 cookies,可以直接查看。
|
|
這條命令會列出目前 context 中的 cookies,適合用來排查登入狀態是否存在、cookie 是否寫入成功。
04 設定 cookies
如果你已經有 cookie 資料,也可以直接寫入。
|
|
這個用法適合調試驗證流程、重現特定 session,或在腳本執行前手動注入 cookie 條件。
05 讀取 localStorage
有些網站的登入狀態或前端狀態不只存在 cookies 裡,也會放在 localStorage。
|
|
這條命令用來查看目前頁面的 localStorage 內容。排查「明明像是登入了,但頁面行為還是不對」時,這一步很有用。
06 寫入 localStorage
如果需要模擬某些前端狀態,也可以直接設定。
|
|
它會把指定鍵值寫入 localStorage。常見用途是注入 token、偏好設定或某些前端開關。
07 讀取 sessionStorage
sessionStorage 適合查看目前 session 裡的暫時狀態。
|
|
這條命令會輸出目前頁面的 sessionStorage。如果某個頁面流程依賴一次性的 session 資料,可以從這裡檢查。
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