別再讓 AI 盯着網頁發呆了:Playwright-CLI 正在改寫瀏覽器自動化

作者:Nice哥聊AI
日期:2026年4月27日 下午1:03
來源:WeChat 原文

整理版優先睇

速讀 5 個重點 高亮

Playwright-CLI 唔係另一個瀏覽器工具,而係微軟為 AI Coding Agent 重新設計嘅瀏覽器操作接口,用更短命令、更省上下文嘅方式,令 AI 可以低成本、高頻次咁開頁面、點擊、截圖、睇 console,真正完成開發閉環。

整理版摘要

呢篇文章係由一位關注 AI 編程工具發展嘅開發者撰寫,佢指出雖然 AI 已經可以讀寫程式碼、改動項目、跑測試,但成日卡喺一個關鍵位:瀏覽器操作。微軟推出嘅 Playwright-CLI 就係為咗填補呢個缺口。作者嘅核心論點係:AI Agent 唔單止要「能夠」操作瀏覽器,仲要喺有限嘅模型上下文入面,以低成本、高頻率同可控嘅方式去操作。Playwright-CLI 嘅設計正好滿足呢個需要,佢唔係取代 Playwright MCP,而係提供一個更輕量、更慳上下文嘅選項。

Playwright-CLI 嘅關鍵設計係將瀏覽器操作濃縮成好短嘅命令,例如 `playwright-cli open`、`click`、`type`、`screenshot`,而唔係每次傳一大堆工具 schema 或者可訪問性樹畀模型。佢仲支援 Skills,即係畀 Agent 用嘅操作手冊,可以按需要加載,唔使一次過塞曬所有資訊。Session 設計令 Agent 可以保持瀏覽器狀態,唔使每次由零開始。`show` dashboard 就畀人類可以觀察同接管 Agent 嘅操作,解決信任問題。

整體嚟講,Playwright-CLI 代表住一個大趨勢:工具開始為 AI Agent 重新設計。將來會有愈嚟愈多開發工具唔單止畀人用,仲要畀 AI 用。而能夠令 AI 更省上下文、更穩定操作真實世界嘅工具,就會成為下一代軟件工程嘅入口。作者建議已經用緊 Cl…

  • Playwright-CLI 係微軟面向 AI Coding Agent 嘅瀏覽器控制接口,核心賣點係 token-efficient,用短命令操作瀏覽器,大幅減少模型上下文負擔。
  • Playwright MCP 嘅分別在於:MCP 適合複雜、需要深入頁面結構嘅場景,而 CLI 更適合高頻、明確嘅工程閉環動作,例如復現 bug、截圖、檢查 console。
  • CLI 支援 session 設計,可以保存 cookies 同 storage state,令 Agent 可以連續操作而唔使每次重新登錄,真正模擬人類開發者嘅工作流程。
  • `playwright-cli show` 提供可視化 dashboard,畀人類觀察 Agent 嘅瀏覽器操作,必要時可以接管,解決自動化嘅信任問題。
  • Skills 機制實現 progressive disclosure,Agent 可以按需讀取操作指南,避免一次性將大量資訊塞入模型上下文,係未來 Agent 工具設計嘅重要方向。
值得記低
連結 github.com

Playwright-CLI GitHub Repository

微軟官方專案,CLI for common Playwright actions with SKILLS

連結 playwright.dev

Playwright CLI 官方文檔

Getting started with Playwright CLI

連結 npmjs.com

@playwright/cli NPM Package

npm install -g @playwright/cli@latest

筆記

安裝 Skills 指令

`playwright-cli install --skills`,默認安裝喺 .claude/skills 目錄,可以複製到其他工具嘅 skills 目錄。

結構示例

內容片段

內容片段 text
Test the "add todo" flow on
https://demo.playwright.dev/todomvc using playwright-cli.Check playwright-cli --help for available commands.
整理重點

點解 Playwright-CLI 值得關注?

呢個項目嘅定位好直接CLI for common Playwright actions. Record and generate Playwright code, inspect selectors and take screenshots. 官方 README 仲特別強調一句:Playwright CLI with SKILLS。呢句好關鍵,因為佢唔係單純將 Playwright 能力包一層命令行,而係將 CLI 同 Skills 綁埋一齊,專門畀 Claude Code、GitHub Copilot 呢啲 coding agents 用。

整理重點

新舊 Playwright CLI 嘅本質分別

好多開發者一聽到 Playwright CLI,可能會諗起 `npx playwright test`、`npx playwright codegen` 呢啲傳統命令。但新嘅 @playwright/cli 目標對象唔同咗:佢唔係畀人類開發者嘅測試運行器,而係一個 面向 AI Agent 嘅瀏覽器控制接口。

安裝方式好簡單:npm install -g @playwright/cli@latest,然後可以執行 `playwright-cli --help`。仲可以安裝 skills:playwright-cli install --skills,默認裝喺 `.claude/skills` 目錄。如果喺其他工具用,就複製去對應嘅 skills 目錄就得。

整理重點

CLI 點樣比 MCP 更慳上下文?

好多人一講 AI Agent 就諗起 MCP,但 MCP 有個現實問題:上下文成本。MCP 會向模型暴露工具 schema、結構化返回、頁面信息,複雜網頁嘅可訪問性樹、DOM 摘要可能好長。如果 Agent 只係想做簡單動作——開頁面、撳掣、打字、截圖、睇 console——每次都塞咁多結構入去,未必划算。

Playwright CLI 嘅思路係:別將瀏覽器搬入模型上下文,等模型發命令就得。例如:`playwright-cli open https://... --headed`、`playwright-cli type "Buy groceries"`、`playwright-cli press Enter`、`playwright-cli screenshot`。呢啲命令好短,Agent 唔使「讀懂成個網頁世界」,只需要喺必要時透過 snapshot 拎可交互元素引用,然後用 ref 操作。

整理重點

Session 設計同 Show Dashboard:狀態管理同人類監督

Playwright CLI 有一個好重要但容易被低估嘅設計:session。默認情況下,Playwright CLI 會將瀏覽器 profile 保存喺內存,同一個 session 內 cookies 同 storage state 會喺 CLI 調用之間保留;如果用 --persistent,仲可以持久化到磁盤。

  1. 1 Agent 唔使每次重新登錄、重新初始化,可以「繼續之前嘅瀏覽器」做落去。
  2. 2 支援 `playwright-cli list` 睇曬所有 session,仲可以透過 `PLAYWRIGHT_CLI_SESSION` 環境變量指定 session。
  3. 3 呢個對真實工程場景好重要,因為大量問題係發生喺連續狀態入面:登錄後、多標籤頁、表單填一半、特定權限下。

另一個好玩嘅功能係 playwright-cli show,佢會打開一個可視化 dashboard,顯示所有運行緊嘅瀏覽器 session:session grid 展示活躍 session、URL、頁面標題、實時預覽;session detail 展示實時視圖、標籤頁、導航控制;人類可以點擊 viewport 接管鼠標鍵盤,或者關閉 session。

整理重點

Skills 機制同 AI 工具新方向

playwright-cli install --skills 呢點尤其值得留意。Skills 唔係多一份文檔咁簡單,而係畀 Agent 嘅「操作手冊」。傳統文檔係寫畀人睇,Skill 係寫畀 Agent 用:幾時 call 咩命令、遇到某類任務點拆解、複雜能力點按需加載。

第三方文章提到一個關鍵詞:progressive disclosure(漸進披露)。即係唔好一次過將所有複雜資訊塞畀模型,而係等 Agent 需要時再讀取具體操作指南。呢個同 Playwright CLI 嘅 token-efficient 目標一致。真正優秀嘅 Agent 工具,唔係暴力提供更多上下文,而係 減少不必要上下文。

所以如果你而家用緊 Claude CodeGitHub CopilotCursorWindsurf 之類嘅 coding agent,不妨留意呢個項目。唔係因為佢命令多,而係因為佢透露咗一個好明確嘅方向:下一代開發工具,唔單止畀人用,佢哋都會畀 AI 用。而邊個能夠令 AI 更省上下文、更穩定操作真實世界,邊個就更接近下一代軟件工程嘅入口。

 

如果話過去一年,AI編程工具最大嘅變化,係模型終於識得讀code、改動項目、跑test。

咁接下來更重要嘅一步,就係:AI可唔可以好似一個真正嘅開發者咁,打開瀏覽器,撳頁面,填表單,睇報錯,截圖,復現問題,然後自己修返好。

呢件事聽落唔係新鮮。

Playwright一早就可以自動化瀏覽器,Playwright MCP都已經令AI Agent可以透過MCP控制瀏覽器。好多人會問:既然已經有MCP,點解微軟仲要另外做一個playwright-cli呢?

答案好簡單,亦好現實:

AI Agent唔單止要‘識得操作瀏覽器’,仲要喺有限上下文入面,低成本、高頻率、可控咁操作瀏覽器。

呢個就係Playwright CLI出現嘅真正意義。

佢唔係另一個俾人類手打命令嘅傳統CLI。

佢更加似係微軟俾AI Coding Agent準備嘅一對‘機械手’:唔使每次都將成個頁面結構、冗長工具schema、大量可訪問性樹塞入模型上下文,而係令Agent透過簡短、明確、可組合嘅命令完成瀏覽器操作。

一句講曬:

MCP令AI Agent睇到瀏覽器,Playwright CLI令AI Agent更平、更輕、更似工程師咁用瀏覽器。

總體使用的感覺也是相當哇塞!

一、點解呢個項目值得睇?

先睇項目本身。

microsoft/playwright-cli 嘅定位好直接:

CLI用嚟做常見嘅Playwright操作。錄製同生成Playwright代碼,檢查selector同截圖。

官方README入面講得更清楚:

Playwright CLI with SKILLS.

呢句好關鍵。

佢唔止係將Playwright嘅能力包咗一層命令行,而係將CLI同Skills綁埋一齊,面向Claude Code、GitHub Copilot呢啲coding agents嚟用。

根據項目README同Playwright官方文檔,Playwright CLI嘅核心賣點係:

  • • 命令行控制瀏覽器;
  • • 面向coding agents;
  • • 支持安裝skills;
  • • 默認強調token-efficient;
  • • 識得打開頁面、撳掣、輸入、截圖、生成locator、保存狀態、管理session、睇網絡請求、錄製trace/video;
  • • 仲可以透過 playwright-cli show 打開可視化dashboard,觀察多個瀏覽器session。

呢個代表咩?

代表微軟已經唔滿足於‘AI識得調用瀏覽器工具’。

佢喺度行得更深一層:為AI Agent重新設計瀏覽器自動化接口。

二、舊Playwright CLI、新Playwright CLI,唔係同一回事

呢度好容易混淆。

好多開發者一聽Playwright CLI,就會下意識諗到:

npx playwright test
npx playwright codegen
npx playwright install

呢啲當然都係Playwright嘅命令行能力,但佢哋主要係俾人類開發者用嘅:跑test、生成test、安裝瀏覽器。

而新的 @playwright/cli,從項目表述睇,目標對象變咗。

佢唔係傳統意義上嘅‘測試運行器’,而係一個面向AI Agent嘅瀏覽器控制接口

安裝方式都好清楚:

npm install -g @playwright/cli@latest
playwright-cli --help

然後可以安裝skills:

C:\Users\Administrator\playwright-cli install --skills
默認係安裝喺.claude/skills目錄下面,如果冇呢個目錄,就會自動創建。如果喺其他工具入面需要用,就要將.claude\skills\playwright-cli入面嘅內容複製到其他工具嘅skills目錄下面。

如果你喺OpenClaw入面用,就要入去.openclaw\workspace\skills目錄,複製上面講嗰個文件夾然後貼喺呢個目錄。如果係用codex、cursor或者Trae,都可以用類似嘅方法。
使用例子

執行過程

輸出結果

如果唔裝skills,都可以直接俾Agent自己睇help:

Test the "add todo" flow on https://demo.playwright.dev/todomvc using playwright-cli.
Check playwright-cli --help for available commands.

呢個就係設計上嘅變化:

過去嘅CLI,係人睇文件,人打命令。

而家嘅CLI,係Agent睇help/skill,Agent決定下一步點操作。

工具嘅使用者,由人,變成咗AI。

呢個唔係小修小補,而係開發工具範式嘅變化。

三、CLI同MCP相比,關鍵唔係‘邊個更高級’,而係邊個更慳

而家好多人一講AI Agent,就會將MCP當成萬能答案。

MCP當然重要。

佢提供咗標準化工具協議,令Agent可以調用文件系統、數據庫、瀏覽器、設計工具、企業系統。Playwright MCP都好適合嗰啲需要持續狀態、豐富頁面結構、反覆探索網頁嘅自動化場景。

但MCP有一個現實問題:

上下文成本。

MCP工具通常會向模型暴露工具schema、結構化返回、頁面資訊。對於複雜網頁,返回嘅可訪問性樹、DOM摘要、工具調用細節都可能好長。

如果Agent只係想做一個簡單動作:

  • • 打開頁面;
  • • 撳一個掣;
  • • 輸入一段文字;
  • • 截圖;
  • • 睇下console;
  • • 保存trace;

咁每次都將大量結構塞入上下文,未必抵。

Playwright CLI嘅思路係:

唔好將瀏覽器搬入模型上下文,俾模型發命令就得。

比如:

playwright-cli open https://demo.playwright.dev/todomvc --headed
playwright-cli type "Buy groceries"
playwright-cli press Enter
playwright-cli screenshot

呢啲命令好短。

Agent唔需要‘讀明成個網頁世界’,只需要喺必要時透過snapshot拎到可交互元素引用,然後用ref操作。

官方README入面都強調:CLI + Skills嘅方式可以避免將大型工具schema同冗長accessibility tree加載入模型上下文,從而更適合高吞吐嘅coding agents。

呢個先係Playwright CLI嘅核心價值:

佢唔係比MCP更萬能,而係喺大量工程場景入面,比MCP更輕。

四、佢真正解決嘅係AI編程入面嘅‘最後一公里’

今日嘅AI Coding Agent已經可以做好多嘢:

  • • 讀code;
  • • 改code;
  • • 寫test;
  • • 跑命令;
  • • 睇log;
  • • 修error;
  • • 開PR。

但佢哋成日卡喺一個地方:瀏覽器現場。

例如你叫Agent修一個frontend bug:

登錄之後撳設置頁,切換主題,再刷新頁面,掣嘅狀態唔啱。

純code視角下,Agent可能會估:係唔係狀態冇持久化?係唔係localStorage key錯咗?係唔係hydration出問題?

但人類開發者會點做?

打開瀏覽器,復現一次。

睇頁面有冇報錯。

睇Network請求有冇失敗。

睇localStorage有冇寫入。

截個圖,確認UI狀態。

必要時錄trace。

Playwright CLI啱啱好將呢啲動作變成Agent可以穩定調用嘅命令:

  • • open / goto:打開同跳轉;
  • • click / fill / type / press:模擬用戶操作;
  • • snapshot:獲取頁面狀態同元素ref;
  • • screenshot / pdf:保存結果;
  • • console:睇console訊息;
  • • network:睇網絡請求;
  • • state-save / state-load:保存登錄狀態;
  • • route:mock網絡請求;
  • • tracing-start / tracing-stop:錄製trace;
  • • video-start / video-stop:錄屏;
  • • generate-locator:生成Playwright locator。

呢個就令Agent由‘code編輯器入面嘅聰明助手’,向‘可以跑完整開發閉環嘅工程夥伴’行咗一步。

唔止係會改code,而係可以:

呢個就係AI編程真正有生產力嘅地方。

五、Session設計:令Agent唔使每次都從頭開始

Playwright CLI仲有一個好重要但容易被低估嘅設計:session。

README入面寫得好清楚:默認情況下,Playwright CLI會將瀏覽器profilesave喺內存入面。同一個session入面,cookies同storage state會喺CLI調用之間保留;如果使用 --persistent,仲可以持久化到磁碟。

亦即係話,Agent唔使每次操作都重新登錄、重新初始化。

例如:

playwright-cli open https://playwright.dev
playwright-cli -s=example open https://example.com --persistent
playwright-cli list

仲可以透過環境變量指定session:

PLAYWRIGHT_CLI_SESSION=todo-app claude .

呢個對真實工程場景好重要。

因為大量問題唔係發生喺一個靜態頁面,而係發生喺一組連續狀態入面:

  • • 登錄後嘅狀態;
  • • 多標籤頁狀態;
  • • 表單填寫一半嘅狀態;
  • • 某個用戶權限下嘅狀態;
  • • 某次接口mock後嘅狀態;
  • • 某個項目workspace對應嘅瀏覽器狀態。

Session令Agent可以似人類開發者咁‘跟住頭先嘅瀏覽器繼續做’,而唔係每次都似失憶咁重新開。

呢個都係CLI面向Agent嘅關鍵體驗。

六、show dashboard:人類重新返到監督位置

另一個好有趣嘅功能係:

playwright-cli show

佢會打開一個可視化dashboard,俾你睇到所有正在運行嘅瀏覽器session。

根據README,呢個dashboard包含:

  • • session grid:展示活躍session、當前URL、頁面標題、實時預覽;
  • • session detail:展示揀中session嘅實時視圖、標籤頁、導航控制;
  • • 人類可以撳viewport接管滑鼠鍵盤;
  • • 可以關閉session或者刪除inactive session嘅數據。

呢件事背後其實有一個好重要嘅產品判斷:

AI Agent唔應該係黑盒。

尤其係當Agent喺後台操作瀏覽器嘅時候,人類需要一種方式觀察、接管、糾偏。

呢個同好多自動化系統嘅方向一致:

  • • AI做重複操作;
  • • 人類做監督同關鍵判斷;
  • • 系統提供可觀測性;
  • • 必要時容許人工介入。

如果冇 show 呢種能力,Agent自動化好容易變成‘佢好似喺度跑,但我唔知佢喺度做咩’。

有咗dashboard,開發者可以睇到Agent到底撳咗邊度、卡喺邊個頁面、係咪進入咗錯誤狀態。

呢個對團隊採用AI Agent好重要。

因為真正阻礙落地嘅,往往唔係工具能力,而係信任。

七、Playwright CLI + Skills:微軟喺度押注一種新交互方式

playwright-cli install --skills 呢一點尤其值得注意。

Skills嘅價值,唔係多一份文檔。

佢更加似係俾Agent嘅‘操作手冊’。

傳統文檔係寫俾人睇嘅:概念、教程、API、例子。

Skill係寫俾Agent用嘅:幾時調用咩命令,遇到某類任務應該點拆解,複雜能力如何按需加載。

第三方文章都提到一個關鍵詞:progressive disclosure,漸進披露。

意思係:唔好一次過將所有複雜資訊塞俾模型,而係俾Agent喺需要嗰陣先讀取具體操作指南。

呢個同Playwright CLI嘅token-efficient目標係一致嘅。

真正優秀嘅Agent工具,唔係暴力提供更多上下文,而係減少不必要嘅上下文。

因為模型上下文唔係垃圾桶。

上下文越滿,推理越容易被噪音幹擾,成本亦越高。

所以Playwright CLI + Skills嘅組合,本質上係喺度探索一種新嘅Agent工具形態:

命令短、狀態外置、指南按需、結果可驗證。

八、佢適合邊啲場景?

我認為Playwright CLI最適合以下幾類場景。

1. Frontend Bug復現

例如:某個掣撳咗冇反應、表單提交失敗、彈窗狀態異常、路由跳轉錯誤。

Agent可以直接打開頁面,跟住步驟復現,保存screenshot/console/network,再返轉頭改code。

2. Agent自測

開發者叫Agent改完code之後,唔止係跑單元測試,仲要打開頁面做一次真實路徑驗證。

例如:

修改登錄頁樣式之後,用playwright-cli打開本地頁面,驗證掣可以撳,截圖保存。

呢個比‘code睇落冇問題’更可靠。

3. 輕量E2E探索

喺未寫正式Playwright測試之前,Agent可以先透過CLI探索頁面流程,然後再沉澱成測試code。

配合 generate-locator,仲可以生成更穩定嘅locator。

4. 多Agent並行瀏覽器任務

session支持令唔同Agent用唔同瀏覽器實例。

例如一個Agent負責用戶A嘅路徑,另一個Agent負責管理員路徑,互相唔幹擾。

5. 帶人工監督嘅自動化

通過 playwright-cli show,人可以觀察Agent操作,必要時接管。

呢個特別適合早期團隊試用,唔使將瀏覽器完全交俾黑盒自動化。

九、但唔好神化佢:CLI唔係萬能鑰匙

要寫清楚少少:Playwright CLI唔係要取代所有嘢。

佢唔等於Playwright Test。

正式、穩定、可維護嘅自動化測試,仍然應該沉澱成測試code,進入CI,配合斷言、報告、trace、重試、並發策略。

佢都唔等於Playwright MCP。

如果你嘅場景需要長期、多輪、深度理解頁面結構,或者需要richer introspection,MCP仍然有價值。

CLI嘅優勢在於輕、快、慳、適合coding agent高頻調用。

MCP嘅優勢在於結構化、協議化、適合更複雜嘅工具生態。

所以最好嘅判斷唔係‘CLI同MCP邊個贏咗’。

而是:

  • • 高頻、明確、工程閉環入面嘅瀏覽器動作:優先CLI;
  • • 複雜、長程、需要豐富頁面結構推理嘅Agent流程:考慮MCP;
  • • 穩定回歸測試:沉澱到Playwright Test。

工具唔係宗教,場景先係答案。

十、真正嘅大趨勢:工具開始為Agent重新設計

Playwright CLI最值得關注嘅,唔止係佢本身。

而係佢代表嘅趨勢:

未來會有越來越多工具,唔再淨係面向人類開發者,而係同時面向AI Agent。

過去我哋設計CLI,係為咗令人打命令方便。

而我哋設計CLI,要考慮:

  • • Agent可唔可以低成本發現命令?
  • • 返回資訊可唔可以夠短?
  • • 狀態可唔可以外置?
  • • 失敗可唔可以診斷?
  • • 結果可唔可以被截圖、trace、日誌驗證?
  • • 人類可唔可以隨時觀察同接管?

呢個係一整套新嘅工程設計原則。

Playwright CLI啱啱好踩中咗呢個方向。

佢唔係炫技項目,而係一個好具體嘅工程答案:

當AI Agent開始接管越來越多開發流程嘅時候,瀏覽器自動化必須由‘俾人用嘅測試工具’,進化成‘俾Agent用嘅操作接口’。

結尾:AI編程嘅分水嶺,唔係識唔識寫code

好多人仲用‘可唔可以生成code’嚟判斷AI編程工具。

但呢個已經唔係最關鍵嘅問題喇。

真正嘅分水嶺係:

佢可唔可以完成閉環。

可唔可以理解需求。

可唔可以改code。

可唔可以跑起嚟。

可唔可以打開瀏覽器驗證。

可唔可以睇到錯誤。

可唔可以留低證據。

可唔可以自己修正。

Playwright CLI嘅意義,就喺呢度。

佢將瀏覽器呢件原本偏‘人類現場操作’嘅事,進一步壓縮成Agent可以調用嘅工程接口。

呢個會令AI Coding Agent由‘會寫code嘅助手’,更接近‘能交付結果嘅工程協作者’。

所以,如果你而家已經在用Claude Code、GitHub Copilot、Cursor、Windsurf,或者任何coding agent,不妨留意呢個項目。

唔係因為佢命令多。

而係因為佢透露咗一個非常明確嘅方向:

下一代開發工具,唔止係俾人用嘅。佢哋都會俾AI用。

而邊個可以令AI更慳上下文、更穩定咁操作真實世界,邊個就更接近下一代軟件工程嘅入口。


參考資料

  • • https://github.com/microsoft/playwright-cli
  • • https://playwright.dev/docs/getting-started-cli
  • • https://www.npmjs.com/package/@playwright/cli

 


 

如果說過去一年,AI 編程工具最大的變化,是模型終於能讀懂代碼、改動項目、跑測試。

那接下來更關鍵的一步,就是:AI 能不能像一個真正的開發者一樣,打開瀏覽器,點頁面,填表單,看報錯,截圖,復現問題,然後自己修掉。

這件事聽起來並不新。

Playwright 早就能自動化瀏覽器,Playwright MCP 也已經讓 AI Agent 可以通過 MCP 控制瀏覽器。很多人會問:既然已經有 MCP 了,為什麼微軟還要單獨做一個playwright-cli呢?

答案很簡單,也很現實:

AI Agent 不只是要“能操作瀏覽器”,還要在有限上下文裏,低成本、高頻率、可控地操作瀏覽器。

這就是 Playwright CLI 出現的真正意義。

它不是又一個給人類手敲命令的傳統 CLI。

它更像是微軟給 AI Coding Agent 準備的一雙“機械手”:不需要每次把整棵頁面結構、冗長工具 schema、大量可訪問性樹都塞進模型上下文,而是讓 Agent 通過簡短、明確、可組合的命令完成瀏覽器操作。

一句話:

MCP 讓 AI Agent 看見瀏覽器,Playwright CLI 讓 AI Agent 更便宜、更輕、更像工程師一樣使用瀏覽器。

總體使用的感覺也是相當哇塞!

一、為什麼這個項目值得看?

先看項目本身。

microsoft/playwright-cli 的定位很直接:

CLI for common Playwright actions. Record and generate Playwright code, inspect selectors and take screenshots.

官方 README 裏把它說得更明確:

Playwright CLI with SKILLS.

這句話很關鍵。

它不只是把 Playwright 的能力包了一層命令行,而是把 CLI 和 Skills 綁定在一起,面向 Claude Code、GitHub Copilot 等 coding agents 使用。

根據項目 README 和 Playwright 官方文檔,Playwright CLI 的核心賣點是:

  • • 命令行控制瀏覽器;
  • • 面向 coding agents;
  • • 支持安裝 skills;
  • • 默認強調 token-efficient;
  • • 能打開頁面、點擊、輸入、截圖、生成 locator、保存狀態、管理 session、查看網絡請求、錄製 trace/video;
  • • 還能通過 playwright-cli show 打開可視化 dashboard,觀察多個瀏覽器 session。

這意味着什麼?

意味着微軟已經不滿足於“AI 能調用瀏覽器工具”。

它在往更深的一層走:為 AI Agent 重新設計瀏覽器自動化接口。

二、舊 Playwright CLI、新 Playwright CLI,不是一回事

這裏很容易混淆。

很多開發者一聽 Playwright CLI,會下意識想到:

npx playwright test
npx playwright codegen
npx playwright install

這些當然也是 Playwright 的命令行能力,但它們主要是給人類開發者使用的:跑測試、生成測試、安裝瀏覽器。

而新的 @playwright/cli,從項目表述看,目標對象變了。

它不是傳統意義上的“測試運行器”,而是一個面向 AI Agent 的瀏覽器控制接口

安裝方式也很清楚:

npm install -g @playwright/cli@latest
playwright-cli --help

然後可以安裝 skills:

C:\Users\Administrator\playwright-cli install --skills
默認是安裝在.claude/skills目錄下,如果沒有該目錄,則會自動創建。如果需要在其它工具中使用,需要將.claude\skills\playwright-cli中的內容複製到其它工具的skills目錄下。

如果你在OpenClaw中使用,則進入.openclaw\workspace\skills目錄,複製上述文件夾並粘貼至此目錄。如果使用codex、cursor或Trae,可採用類似處理。
使用示例

執行過程

輸出結果

如果不裝 skills,也可以直接讓 Agent 自己讀 help:

Test the "add todo" flow on https://demo.playwright.dev/todomvc using playwright-cli.
Check playwright-cli --help for available commands.

這就是設計上的變化:

過去的 CLI,是人看文檔,人敲命令。

現在的 CLI,是 Agent 看 help / skill,Agent 決定下一步怎麼操作。

工具的使用者,從人,變成了 AI。

這不是小修小補,而是開發工具範式的變化。

三、CLI 相比 MCP,關鍵不是“誰更高級”,而是誰更省

現在很多人一談 AI Agent,就會把 MCP 當成萬能答案。

MCP 當然重要。

它提供了標準化工具協議,讓 Agent 能調用文件系統、數據庫、瀏覽器、設計工具、企業系統。Playwright MCP 也非常適合那種需要持續狀態、豐富頁面結構、反覆探索網頁的自動化場景。

但 MCP 有一個現實問題:

上下文成本。

MCP 工具通常會向模型暴露工具 schema、結構化返回、頁面信息。對於複雜網頁,返回的可訪問性樹、DOM 摘要、工具調用細節都可能很長。

如果 Agent 只是想做一個簡單動作:

  • • 打開頁面;
  • • 點一個按鈕;
  • • 輸入一段文字;
  • • 截圖;
  • • 看一下 console;
  • • 保存 trace;

那每次都把大量結構塞進上下文,未必划算。

Playwright CLI 的思路是:

別把瀏覽器搬進模型上下文,讓模型發命令就行。

比如:

playwright-cli open https://demo.playwright.dev/todomvc --headed
playwright-cli type "Buy groceries"
playwright-cli press Enter
playwright-cli screenshot

這些命令非常短。

Agent 不需要“讀懂整個網頁世界”,只需要在必要時通過 snapshot 獲取可交互元素引用,然後用 ref 操作。

官方 README 裏也強調:CLI + Skills 的方式可以避免把大型工具 schema 和冗長 accessibility tree 加載進模型上下文,從而更適合高吞吐的 coding agents。

這才是 Playwright CLI 的核心價值:

它不是比 MCP 更萬能,而是在大量工程場景裏,比 MCP 更輕。

四、它真正解決的是 AI 編程裏的“最後一公里”

今天的 AI Coding Agent 已經能做很多事:

  • • 讀代碼;
  • • 改代碼;
  • • 寫測試;
  • • 跑命令;
  • • 看日誌;
  • • 修報錯;
  • • 開 PR。

但它們經常卡在一個地方:瀏覽器現場。

比如你讓 Agent 修一個前端 bug:

登錄後點擊設置頁,切換主題,再刷新頁面,按鈕狀態不對。

純代碼視角下,Agent 可能會猜:是不是狀態沒持久化?是不是 localStorage key 錯了?是不是 hydration 出問題?

但人類開發者會怎麼做?

打開瀏覽器,復現一遍。

看頁面有沒有報錯。

看 Network 請求有沒有失敗。

看 localStorage 有沒有寫入。

截個圖,確認 UI 狀態。

必要時錄 trace。

Playwright CLI 正好把這些動作變成 Agent 可以穩定調用的命令:

  • • open / goto:打開和跳轉;
  • • click / fill / type / press:模擬用戶操作;
  • • snapshot:獲取頁面狀態和元素 ref;
  • • screenshot / pdf:保存結果;
  • • console:查看控制枱消息;
  • • network:查看網絡請求;
  • • state-save / state-load:保存登錄態;
  • • route:mock 網絡請求;
  • • tracing-start / tracing-stop:錄製 trace;
  • • video-start / video-stop:錄屏;
  • • generate-locator:生成 Playwright locator。

這就讓 Agent 從“代碼編輯器裏的聰明助手”,往“能跑完整開發閉環的工程夥伴”邁了一步。

不是隻會改代碼,而是能:

這就是 AI 編程真正有生產力的地方。

五、Session 設計:讓 Agent 不再每次從零開始

Playwright CLI 還有一個很重要但容易被低估的設計:session。

README 裏寫得很清楚:默認情況下,Playwright CLI 會把瀏覽器 profile 保存在內存中。同一個 session 內,cookies 和 storage state 會在 CLI 調用之間保留;如果使用 --persistent,還能持久化到磁盤。

也就是說,Agent 不需要每次操作都重新登錄、重新初始化。

例如:

playwright-cli open https://playwright.dev
playwright-cli -s=example open https://example.com --persistent
playwright-cli list

還可以通過環境變量指定 session:

PLAYWRIGHT_CLI_SESSION=todo-app claude .

這對真實工程場景很重要。

因為大量問題不是發生在一個靜態頁面,而是發生在一組連續狀態裏:

  • • 登錄後的狀態;
  • • 多標籤頁狀態;
  • • 表單填寫一半的狀態;
  • • 某個用戶權限下的狀態;
  • • 某次接口 mock 後的狀態;
  • • 某個項目 workspace 對應的瀏覽器狀態。

Session 讓 Agent 可以像人類開發者一樣“接着剛才的瀏覽器繼續做”,而不是每次都像失憶一樣重開。

這也是 CLI 面向 Agent 的關鍵體驗。

六、show dashboard:人類重新回到監督位

另一個很有意思的功能是:

playwright-cli show

它會打開一個可視化 dashboard,讓你看到所有正在運行的瀏覽器 session。

根據 README,這個 dashboard 包含:

  • • session grid:展示活躍 session、當前 URL、頁面標題、實時預覽;
  • • session detail:展示選中 session 的實時視圖、標籤頁、導航控制;
  • • 人類可以點擊 viewport 接管鼠標鍵盤;
  • • 可以關閉 session 或刪除 inactive session 的數據。

這件事背後其實有一個很重要的產品判斷:

AI Agent 不應該是黑盒。

尤其當 Agent 在後台操作瀏覽器時,人類需要一種方式觀察、接管、糾偏。

這和很多自動化系統的方向一致:

  • • AI 做重複操作;
  • • 人類做監督和關鍵判斷;
  • • 系統提供可觀測性;
  • • 必要時允許人工介入。

如果沒有 show 這種能力,Agent 自動化很容易變成“它好像在跑,但我不知道它在幹嘛”。

有了 dashboard,開發者可以看到 Agent 到底點了哪裏、卡在哪個頁面、是否進入了錯誤狀態。

這對團隊採用 AI Agent 非常重要。

因為真正阻礙落地的,往往不是工具能力,而是信任。

七、Playwright CLI + Skills:微軟在押注一種新交互方式

playwright-cli install --skills 這一點尤其值得注意。

Skills 的價值,不是多一份文檔。

它更像是給 Agent 的“操作手冊”。

傳統文檔是寫給人看的:概念、教程、API、示例。

Skill 是寫給 Agent 用的:什麼時候調用什麼命令,遇到某類任務該怎麼拆解,複雜能力如何按需加載。

第三方文章也提到一個關鍵詞:progressive disclosure,漸進披露。

意思是:不要一次性把所有複雜信息都塞給模型,而是讓 Agent 在需要時再讀取具體操作指南。

這和 Playwright CLI 的 token-efficient 目標是一致的。

真正優秀的 Agent 工具,不是暴力提供更多上下文,而是減少不必要上下文。

因為模型上下文不是垃圾桶。

上下文越滿,推理越容易被噪音干擾,成本也越高。

所以 Playwright CLI + Skills 的組合,本質上是在探索一種新的 Agent 工具形態:

命令短、狀態外置、指南按需、結果可驗證。

八、它適合哪些場景?

我認為 Playwright CLI 最適合以下幾類場景。

1. 前端 Bug 復現

比如:某個按鈕點了沒反應、表單提交失敗、彈窗狀態異常、路由跳轉錯誤。

Agent 可以直接打開頁面,按步驟復現,保存 screenshot / console / network,再回頭改代碼。

2. Agent 自測

開發者讓 Agent 改完代碼後,不只是跑單元測試,還要打開頁面做一次真實路徑驗證。

例如:

修改登錄頁樣式後,用 playwright-cli 打開本地頁面,驗證按鈕可點擊,截圖保存。

這比“代碼看起來沒問題”更可靠。

3. 輕量 E2E 探索

在還沒寫正式 Playwright 測試前,Agent 可以先通過 CLI 探索頁面流程,然後再沉澱成測試代碼。

配合 generate-locator,還能生成更穩定的 locator。

4. 多 Agent 並行瀏覽器任務

session 支持讓不同 Agent 使用不同瀏覽器實例。

比如一個 Agent 負責用戶 A 的路徑,另一個 Agent 負責管理員路徑,互不干擾。

5. 帶人工監督的自動化

通過 playwright-cli show,人可以觀察 Agent 操作,必要時接管。

這特別適合早期團隊試用,不必把瀏覽器完全交給黑盒自動化。

九、但別神化它:CLI 不是萬能鑰匙

要寫清楚一點:Playwright CLI 不是要取代所有東西。

它不等於 Playwright Test。

正式、穩定、可維護的自動化測試,仍然應該沉澱成測試代碼,進入 CI,配合斷言、報告、trace、重試、併發策略。

它也不等於 Playwright MCP。

如果你的場景需要長期、多輪、深度理解頁面結構,或者需要 richer introspection,MCP 仍然有價值。

CLI 的優勢在於輕、快、省、適合 coding agent 高頻調用。

MCP 的優勢在於結構化、協議化、適合更復雜的工具生態。

所以最好的判斷不是“CLI 和 MCP 誰贏了”。

而是:

  • • 高頻、明確、工程閉環裏的瀏覽器動作:優先 CLI;
  • • 複雜、長程、需要豐富頁面結構推理的 Agent 流程:考慮 MCP;
  • • 穩定迴歸測試:沉澱到 Playwright Test。

工具不是宗教,場景才是答案。

十、真正的大趨勢:工具開始為 Agent 重新設計

Playwright CLI 最值得關注的,不只是它本身。

而是它代表的趨勢:

未來會有越來越多工具,不再只面向人類開發者,而是同時面向 AI Agent。

過去我們設計 CLI,是為了讓人敲起來方便。

現在我們設計 CLI,要考慮:

  • • Agent 能不能低成本發現命令?
  • • 返回信息能不能足夠短?
  • • 狀態能不能外置?
  • • 失敗能不能可診斷?
  • • 結果能不能被截圖、trace、日誌驗證?
  • • 人類能不能隨時觀察和接管?

這是一整套新的工程設計原則。

Playwright CLI 正好踩中了這個方向。

它不是炫技項目,而是一個很具體的工程答案:

當 AI Agent 開始接管越來越多開發流程時,瀏覽器自動化必須從“給人用的測試工具”,進化成“給 Agent 用的操作接口”。

結尾:AI 編程的分水嶺,不是會不會寫代碼

很多人還在用“能不能生成代碼”判斷 AI 編程工具。

但這已經不是最關鍵的問題了。

真正的分水嶺是:

它能不能完成閉環。

能不能理解需求。

能不能改代碼。

能不能跑起來。

能不能打開瀏覽器驗證。

能不能看到錯誤。

能不能留下證據。

能不能自己修正。

Playwright CLI 的意義,就在這裏。

它把瀏覽器這件原本偏“人類現場操作”的事情,進一步壓縮成 Agent 可以調用的工程接口。

這會讓 AI Coding Agent 從“會寫代碼的助手”,更接近“能交付結果的工程協作者”。

所以,如果你現在已經在用 Claude Code、GitHub Copilot、Cursor、Windsurf,或者任何 coding agent,不妨留意這個項目。

不是因為它命令很多。

而是因為它透露了一個非常明確的方向:

下一代開發工具,不只是給人用的。它們也會給 AI 用。

而誰能讓 AI 更省上下文、更穩定地操作真實世界,誰就更接近下一代軟件工程的入口。


參考資料

  • • https://github.com/microsoft/playwright-cli
  • • https://playwright.dev/docs/getting-started-cli
  • • https://www.npmjs.com/package/@playwright/cli