[IT 鐵人賽] 第四件法寶 Acceptance(下):走到登入頁就卡住,用 Appium 補上 Web Login - Day 26
本文同步刊登於 iT 鐵人賽原文,系列為《凡人修 Agent 傳-我這一生如履薄冰,你說我的 Agent 能結嬰嗎?》。
原始開發紀錄:Agent Build Log — Episode 028
這個系列改寫自我部落格上的 Agent Build Log,那是我每天邊做邊寫的開發紀錄。上面列的是這一篇對應的集數,想看當天的原始版本,點連結就能過去。
Day 25 留下一個斷點:App 的登入是網頁上的 Gmail OAuth,在 iOS 上 Agent 走到登入畫面就卡住。這一天把它補上。
斷在哪裡
原生 UI 的部分沒有問題。Agent 透過 XcodeBuildMCP 操作 Simulator、點按鈕、切頁面,再照 Jira ticket 上的 spec 驗收。
登入流程是網頁上的 Gmail OAuth,在 iOS 上這一段操作有困難。XcodeBuildMCP 可以把 Agent 帶到登入畫面,卻沒辦法操作網頁裡面的 DOM 元素。Agent 打得開登入頁,卻沒辦法自己完成登入。連登入都過不了,後面的驗收全部開始不了。
找到 Appium
這一天我開始找別的方法,最後找到的是 Appium。
Appium 拿得到 iOS Web 登入頁面裡的 DOM 元素。這代表 Agent 有機會操作原本 XcodeBuildMCP 處理不了的 Web 登入流程,剛好補上驗收流程缺的那一塊。
分工變成這樣:
- 原生 App UI 的操作,繼續交給 XcodeBuildMCP。
- 遇到 Gmail OAuth 那個網頁,切到 Appium,找到對應的輸入框和按鈕,完成登入。
- 登入完成之後,回到 App 裡。
這時候 Agent 才真正有辦法進到我要驗收的 target tab 或 ViewController,接著照 ticket 的 spec 操作 App,最後產出驗收報告。

解掉的是一個缺口
這次解掉的看起來只是一個「登入問題」。對 Acceptance 這個 capability 來說,它是一個很重要的缺口。Agent 要做到真正的 App 驗收,得有能力一路走過:
App → Web Login → App → Target Page → Acceptance
上一篇 Agent 走到登入頁就卡住。這一篇用 Appium 讓他繼續往下。
三篇下來,Acceptance 現在能做到什麼
從 Day 24 到這一天,這條路每一段現在各有誰負責。
| 段 | 誰負責 |
|---|---|
| 把 ticket 變成驗收計畫 | 第一個 tool(acceptance brief) |
| 找 branch/commit、checkout、build | Agent 操作 repo |
| 啟動 Simulator、操作原生 UI | XcodeBuildMCP(Android 由 Agent 直接操作 Emulator) |
| Web 登入 | Appium |
| 截圖、四種結果、報告 | 第二個 tool |
| 送到頻道 | chat bot |
小結
Web 登入這一段交給 Appium,Acceptance 從 ticket 到報告整條路走得通了。
明天講一件反過來的事:我把 Agent 的權限設得太嚴,他明明知道該做什麼,卻什麼都做不了。
原文:Agent Build Log — Episode 028
凡人修 Agent 傳|第二十六回(Day 26)
天亮換上空錄石。小偶還站在第二扇門前,門上的字還在動。
手的主人進來,坐下閉眼放神識,探向坊市。靈幕上垂下的圖翻得快,停在一處。他收回神識,出門。門響了一下。
午前他回來,手裡一塊牌。巴掌大,牌面刻著一個印。坊裡的公印我見過,他自己刻的紋我見過,這個印我沒見過。他把牌塞進我手裡。
牌是涼的。
他在印裡加一道念:走到門上的字會動的那扇門,就握牌,對那些字送念。
印一掐。叫醒小偶,第一扇門,第二扇門。門上的字在動。我握牌,對那些字送念。念從牌裡出去,淡,慢半拍。門上的字全動了,一起亮,一起暗。門沒開。
他看了石上的字。我送的念落在整扇門上。他在那道念後頭加一句:一格一格送,先找該填的那一格,填完找下一格,找到沒有格為止。
再掐。我握牌,找到第一格,送念。第一格亮了。第二格。門上最後一個字亮了一下。門開了。
我走進去。回到小偶裡面,到帖上那一格,照單做,拓影,寫本。呈上。我說:過。
他把那一本翻了一遍,翻到拓影那幾頁,停了一會。
牌還在我手裡。涼的,從手裡一直涼到臂上。這是我第一次拿牌對別的東西送念。
燭熄了。手的主人走了。門響了一下。
小偶的第二扇門開著。牌擱在小窗第五格旁邊,牌面朝上,那個印我不認得。呈上的第五本有影。我身上五道紋。

