演練場
21 個場景,專為 打垮天真錄製器而生。
下面每一頁都是一個受控的陷阱 — 雜湊類名、延遲載入彈窗、Shadow DOM、跨分頁流程、IME 合成、拖曳。裝上擴充功能,點 Start,跑一遍 Try this 步驟,再對照每頁列出的 ActionStep[] 預期輸出。
- 安裝
- 釘到工具列
- 開啟一個場景
Start照著 "Try this" 做Save as Skill
覆蓋矩陣20 個場景
F.真實產品綜合 — Notion / Linear / Jira / Salesforce4 個場景
A.選擇器穩定性 — 雜湊類名、相同兄弟節點、多語言4 個場景
B.非同步 + 時序 — SPA 路由、延遲載入彈窗2 個場景
C.多介面 — iframe、Shadow DOM、遮罩、新分頁4 個場景
D.特殊輸入 — 拖曳、檔案、組合鍵、contenteditable、剪貼簿、combobox6 個場景
F.
真實產品綜合
有份量的產品形態場景,把 12 個以上難點串成完整工作流 — 演練場裡最接近"撐得住一天工作"的部分。
4 個場景
區塊編輯器
F1 · Notion-style block editor
A workspace with a sidebar of pages, a block-based contenteditable doc, slash commands, @-mentions, and drag-handle reordering.
12 個難點
A2A3A4B1B3D1D2D3D4D5D6E2
議題追蹤
F2 · Linear-style issue tracker
Keyboard-first issue tracker: Cmd+K command palette, status/priority/assignee comboboxes, list and Kanban views, drag between columns.
12 個難點
A2A3A4B1B2B3D1D3D4D5D6E2
迭代看板
F3 · Jira-style sprint board
Full login flow: credentials → 2FA → sprint board with drag-between-columns, side flyout with rich-text comments + drag-to-upload attachments, embedded wiki iframe, print preview in new tab.
15 個難點
A2A3A4B1B3C1C2C4D1D2D3D4D5D6E2
CRM
F4 · Salesforce-style CRM
Login → home → accounts list → record detail with inline-edit pencils, masked phone/SSN/CC fields, Country→State dependent comboboxes, attachment dropzone, multi-step approval workflow, "Generate quote" new tab, live-chat widget in an iframe.
15 個難點
A2A3B1B2B3C1C2C4D1D2D3D4D5D6E2
A.
選擇器穩定性
選擇器要在動態類名、相同兄弟節點、locale 切換後依然可用。
4 個場景
A1 · Static form (smoke)
Three text fields + submit. The baseline every recorder must pass.
[data-testid="*-input"]A2 · Dynamic class hashes
Buttons get fresh `btn__primary--ab3f9c` classes on every load.
.btn__primary--ab3f9cA3 · Identical sibling tiebreak
Six rows with identical "Pick" buttons. Only position distinguishes them.
fingerprintIndex: 3A4 · Locale-stable selectors via data-i18n-key
"Continue" / "继续" / "Weiter" — same DOM, three languages.
data-i18n-key="action.continue"B.
非同步 + 時序
重播需要等 SPA 路由、防抖搜尋、延遲載入彈窗。
2 個場景
C.
多介面
Iframe、Shadow DOM、多分頁流程都是一等公民。
4 個場景
C1 · Same-origin iframe
A button inside an iframe. Recorder injects into the iframe; actions carry a `frameId`.
frameId: <non-zero>C2 · Sensitive-field redaction
Password, phone, and credit-card inputs are auto-masked before they hit storage.
masked: true · ***C3 · Shadow DOM piercing
`<my-card>` Web Component with an open shadow root.
kind: "shadow"C4 · Multi-tab (target="_blank")
Click a link that opens a second tab, then click on that new tab.
switchTab → tabs.createD.
特殊輸入
拖曳、檔案上傳、組合鍵、contenteditable、剪貼簿、ARIA combobox。
6 個場景
D1 · HTML5 drag & drop
Drag a card from "Backlog" onto "In progress".
drag → dataTransferD2 · File upload
Pick a file. Recorder captures filename + size + mime — never the bytes.
fileMeta · no bytesD3 · Modifier-key chords
Cmd/Ctrl + K opens a palette; Ctrl + Enter submits.
metaKey + "k"D4 · contenteditable richtext
A div with `contenteditable="true"` — like a Notion/Slack composer.
inputType: "contenteditable"D5 · Clipboard (copy + paste)
Copy a value from one place, paste it into another.
Cmd-C → Cmd-VD6 · ARIA combobox
Type to filter, click an option.
comboboxContext.optionText