用 Playwright MCP 讓 AI 改它自己寫(xiě)的屎山代碼

0 評(píng)論 2378 瀏覽 0 收藏 8 分鐘

在AI編程領(lǐng)域,我們常常陷入反復(fù)修改代碼的繁瑣流程。本文將介紹如何借助Playwright MCP,讓AI自主檢測(cè)并修復(fù)其生成的代碼問(wèn)題,實(shí)現(xiàn)開(kāi)發(fā)流程的高效閉環(huán),大幅提升編程效率。

在用AI編程開(kāi)發(fā)產(chǎn)品的時(shí)候,尤其是網(wǎng)站類的產(chǎn)品,小到一個(gè)HTML頁(yè)面,大到一個(gè)功能網(wǎng)站,我們的常規(guī)操作是:

1.?在AI編程軟件(例如Cursor、Claude)中,給AI發(fā)請(qǐng)求

2.?等待AI完成代碼,然后打開(kāi)網(wǎng)站,檢查哪里有不對(duì)的地方

3.?把不對(duì)的地方截圖、或者把控制臺(tái)輸出復(fù)制,回到編程軟件,發(fā)給AI,讓AI給新的代碼

如此循環(huán)??,最終完成網(wǎng)站的開(kāi)發(fā)。

發(fā)現(xiàn)沒(méi)有,整個(gè)開(kāi)發(fā)過(guò)程,我們都是在給AI打工,不斷從編程軟件和網(wǎng)站之間切換,頻繁給主子反饋您寫(xiě)的代碼哪里有問(wèn)題。

這個(gè)姿態(tài)不對(duì)!太費(fèi)時(shí)間了?。?/p>

最直接的解決方案就是讓AI自己打開(kāi)網(wǎng)站,讓它看自己寫(xiě)的屎山代碼跑出來(lái)是什么樣子的,讓它自己看控制臺(tái)的輸出有什么問(wèn)題,然后自行去解決??!

這個(gè)場(chǎng)景,放在以前,可以說(shuō)是荒誕,但現(xiàn)在成了現(xiàn)實(shí)!

我們可以利用MCP的能力,讓AI調(diào)用瀏覽器,然后截圖、看輸出,這樣就閉環(huán)了。

今天餅干哥哥就教大家怎么實(shí)現(xiàn)這個(gè)能力,讓AI徹底變成我們的牛馬??!

今天我們的主角是「Playwright」,一個(gè)強(qiáng)大的自動(dòng)化測(cè)試工具,由微軟開(kāi)發(fā),用于測(cè)試網(wǎng)頁(yè)應(yīng)用。它能模擬用戶操作,如點(diǎn)擊、輸入、滾動(dòng)等。常見(jiàn)于爬蟲(chóng)場(chǎng)景。

以前我們用js或者python里寫(xiě)代碼,讓Playwright根據(jù)我們的代碼邏輯去打開(kāi)網(wǎng)站、登陸賬號(hào)、獲取信息等。

現(xiàn)在,我們是要讓AI自行去判斷怎么使用Playwright完成上述的操作。

這里就需要用到MCP Server—— @executeautomation/playwright-mcp-server

上圖中,都是playwright mcp server提供的能力,可供AI調(diào)用:

1. playwright_screenshot

  • 用途:截取網(wǎng)頁(yè)或元素的屏幕截圖。
  • 場(chǎng)景:測(cè)試時(shí)驗(yàn)證頁(yè)面渲染效果,或記錄自動(dòng)化操作后的頁(yè)面狀態(tài)。

2. playwright_fill

  • 用途:自動(dòng)填寫(xiě)表單輸入框內(nèi)容(如登錄框、搜索框)。
  • 場(chǎng)景:模擬用戶輸入,測(cè)試表單提交功能或批量填表。

3. playwright_select

  • 用途:操作下拉菜單選擇特定選項(xiàng)。
  • 場(chǎng)景:測(cè)試下拉選項(xiàng)的交互邏輯(如篩選條件選擇)。

4. playwright_hover

  • 用途:模擬鼠標(biāo)懸停在元素上的行為。
  • 場(chǎng)景:測(cè)試懸停觸發(fā)的動(dòng)態(tài)效果(如菜單彈出、Tooltip)。

5. playwright_expect_response

  • 用途:驗(yàn)證特定網(wǎng)絡(luò)請(qǐng)求的響應(yīng)(如接口返回狀態(tài)碼、數(shù)據(jù))。
  • 場(chǎng)景:確保前端操作觸發(fā)的后端接口符合預(yù)期(如提交訂單后的API響應(yīng))。

6. playwright_get_visible_text

  • 用途:獲取頁(yè)面上可見(jiàn)的文本內(nèi)容。
  • 場(chǎng)景:斷言頁(yè)面內(nèi)容是否正確顯示(如成功提示、錯(cuò)誤信息)。

7. playwright_drag

  • 用途:模擬拖拽元素操作(如文件上傳、排序)。
  • 場(chǎng)景:測(cè)試拖拽交互功能是否正常。

8. playwright_save_as_pdf

  • 用途:將當(dāng)前頁(yè)面保存為 PDF 文件。
  • 場(chǎng)景:生成頁(yè)面快照?qǐng)?bào)告或存檔關(guān)鍵頁(yè)面狀態(tài)。

ok,接下來(lái)看怎么用上這個(gè)工具。 以 Cursor 為例。

首先,要安裝。

先安裝好 node.js

然后在 cursor 命令行下輸入以下命令安裝~

npm install -g @executeautomation/playwright-mcp-server

接著需要在 Cursor 配置這個(gè) MCP 服務(wù)

如圖:右上角設(shè)置-MCP- add new global MCP server

在自動(dòng)新開(kāi)的窗口下,輸入以下的內(nèi)容:

{
“mcpServers”:{
“playwright-mcp-server”:{
“command”:”npx”,
“args”:[
“-y”,
“@executeautomation/playwright-mcp-server”
]
}}}

接著,重啟 Cursor, 回到 MCP 的設(shè)置頁(yè)面就能看到下圖這樣的,必須是綠燈,證明已經(jīng)開(kāi)啟了。

接下來(lái)就直接在 Agent 模式向 AI 正常發(fā)請(qǐng)求,最好用 claude3.7 能比較好調(diào)用 MCP

如果你怕 AI 不調(diào) MCP 可以顯性地讓他執(zhí)行

例如我一個(gè)網(wǎng)站,在登錄的時(shí)候出問(wèn)題了,如下圖,我就發(fā)需求:

我的網(wǎng)站 http://localhost:5173
在登陸的時(shí)候報(bào)錯(cuò)了,賬號(hào)是 admin,密碼是 admin,請(qǐng)你Playwright MCP 訪問(wèn)嘗試登錄后看問(wèn)題是什么,然后解決。

從圖中,我們可以看到 AI 調(diào)用了 MCP 里的多個(gè)工具:打開(kāi)網(wǎng)站-輸入賬號(hào)密碼-點(diǎn)擊登錄-查看控制臺(tái)輸出-然后讀取問(wèn)題后-就先修復(fù)代碼-最后重新執(zhí)行一遍檢查。

如下圖,喜聞樂(lè)見(jiàn)地,幫我下修復(fù)好了這個(gè)問(wèn)題?。?/p>

本文由人人都是產(chǎn)品經(jīng)理作者【餅干哥哥】,微信公眾號(hào):【餅干哥哥數(shù)據(jù)分析】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!