Skip to content

建立 2026-09-15 更新 2026-09-15

Codegen 與 UI Mode

不確定該怎麼寫 Locator、或想更直覺地觀察測試執行過程時,Playwright 提供兩個互動式工具:Codegen(測試產生器)與 UI Mode(互動除錯介面)。

Codegen:錄製操作產生測試

npx playwright codegen https://playwright.dev/

執行後會開啟兩個視窗:一個是實際的瀏覽器,另一個是「Playwright Inspector」。在瀏覽器裡點擊、輸入文字、勾選選項時,Inspector 會即時把這些操作轉換成對應的程式碼,並自動挑選建議的 Locator(優先使用 getByRolegetByText 等語意化寫法)。

實務上,Codegen 產生的程式碼很適合當作起點:先錄製出操作流程的雛形,再手動整理成搭配 FixturesPage Object Model 的正式測試,而不是直接把錄製結果原封不動當成最終測試。

常用參數:

npx playwright codegen --target=typescript https://example.com   # 指定輸出語言
npx playwright codegen --device="iPhone 13" https://example.com  # 模擬行動裝置
npx playwright codegen --save-storage=auth.json https://example.com # 錄製並儲存登入狀態

--save-storage 特別實用:錄製一次登入流程後,把 Cookies/LocalStorage 存成檔案,之後測試可以直接載入這個狀態略過登入步驟,詳見 身份驗證狀態與視覺比對

UI Mode:互動式測試執行介面

npx playwright test --ui

UI Mode 是官方近年主推的除錯體驗,會開啟一個獨立的介面,同時呈現:

  • 左側:所有測試案例的清單,可以單獨執行、重跑某一支測試。
  • 中央:時間軸(Timeline),逐步顯示每個操作對應的畫面截圖,可以像拉進度條一樣前後移動觀察畫面變化。
  • 右側:對應的原始碼、網路請求(Network)、主控台輸出(Console)。

比起單純看終端機的文字結果,UI Mode 能讓你直接看到「測試在第幾步、畫面長什麼樣子」,特別適合開發新測試、或排查偶發失敗(flaky)的案例時使用。UI Mode 也支援「監看模式」,儲存程式碼後自動重跑受影響的測試,開發體驗類似前端框架的熱重載。

該用哪一個?

情境 建議工具
剛開始寫一支新測試,不確定 Locator 怎麼寫 Codegen
想快速取得已登入狀態的 storage state Codegen(搭配 --save-storage
開發階段想即時看到測試每一步的畫面 UI Mode
測試已經失敗過,想回放當時發生了什麼 Trace Viewer(適合分析已發生的失敗,尤其是 CI 上的失敗)

下一步

Codegen 與 UI Mode 適合開發階段即時除錯;當測試在 CI 環境失敗、無法即時重現時,就需要 Trace Viewer 追蹤除錯 回放完整的執行紀錄。