Loading...
Loading...
Compare original and translation side by side
udidadb reverseudidadb reverselist-devicesplatformiosandroidboot-deviceudidavdNameargent-ios-simulator-setupargent-android-emulator-setupgesture-tapgesture-swipegesture-pinchgesture-rotategesture-customlist-devicesplatformiosandroidudidavdNameboot-deviceargent-ios-simulator-setupargent-android-emulator-setupgesture-tapgesture-swipegesture-pinchgesture-rotategesture-customrun-sequencegesture-swipegesture-customrun-sequencepastekeyboardkeyboardpastedescribedescribenative-describe-screenrun-sequencegesture-swipegesture-customrun-sequencepastekeyboardkeyboardpastedescribedescribenative-describe-screenlaunch-appopen-urllaunch-appopen-url{ "udid": "<UDID>", "bundleId": "com.apple.MobileSMS" }com.apple.MobileSMScom.apple.mobilesafaricom.apple.Preferencescom.apple.Mapscom.apple.Photoscom.apple.mobilemailcom.apple.mobilenotescom.apple.MobileAddressBook{ "udid": "<UDID>", "bundleId": "com.apple.MobileSMS" }com.apple.MobileSMScom.apple.mobilesafaricom.apple.Preferencescom.apple.Mapscom.apple.Photoscom.apple.mobilemailcom.apple.mobilenotescom.apple.MobileAddressBook{ "udid": "<UDID>", "url": "messages://" }messages://settings://maps://?q=<query>tel://<number>mailto:<address>https://...{ "udid": "<UDID>", "url": "messages://" }messages://settings://maps://?q=<query>tel://<number>mailto:<address>https://...| Action | Tool | Notes |
|---|---|---|
| Multiple actions | | Batch steps in one call (no intermediate screenshots) |
| Open an app | | Always — never tap home-screen icons |
| Restart an app | | Terminate and relaunch by bundle ID |
| Open URL/scheme | | Web pages, deep links, URL schemes |
| Single tap | | Buttons, links, checkboxes |
| Scroll/swipe | | Straight-line scroll or swipe |
| Long press | | Context menus, drag start |
| Drag & drop | | Complex drag interactions |
| Pinch/zoom | | Two-finger pinch with auto-interpolation |
| Rotation | | Two-finger rotation with auto-interpolation |
| Custom gesture | | Arbitrary touch sequences, optional interpolation |
| Hardware key | | Home, back, power, volume, appSwitch, actionButton |
| Type text (fast) | | iOS only. Form fields — uses clipboard |
| Type text | | iOS+Android. Fallback when paste fails; supports Enter, Escape, arrows |
| Rotate device | | Orientation changes |
| 操作 | 工具 | 说明 |
|---|---|---|
| 多步操作 | | 批量执行多步操作(无需中间截图) |
| 打开应用 | | 务必使用此工具——绝对不要点击主屏幕图标 |
| 重启应用 | | 通过Bundle ID终止并重新启动应用 |
| 打开URL/Scheme | | 网页、深度链接、URL Scheme |
| 单点点击 | | 按钮、链接、复选框 |
| 滚动/滑动 | | 直线滚动或滑动 |
| 长按 | | 上下文菜单、拖拽开始 |
| 拖拽与放置 | | 复杂拖拽交互 |
| 捏合/缩放 | | 双指捏合,自动插值计算 |
| 旋转 | | 双指旋转,自动插值计算 |
| 自定义手势 | | 任意触摸序列,可选插值计算 |
| 硬件按键 | | Home、返回、电源、音量、应用切换、动作按钮 |
| 快速输入文本 | | 仅支持iOS。表单字段——使用剪贴板 |
| 输入文本 | | 支持iOS+Android。 |
| 旋转设备 | | 改变屏幕方向 |
| App type | Discovery tool | What it returns |
|---|---|---|
| Target app discovery | | Accessibility element tree for the current device screen (iOS AX-service or Android uiautomator) with normalized frame coordinates. Works on any app, system dialogs, and Home screen — no app restart or |
| React Native | | React component tree with names, text, testID, and (tap: x,y) |
| App-scoped native | | Low-level app-scoped accessibility elements with normalized and raw coordinates; requires |
| Permission / system modal overlay | | |
| Final visual fallback | | Use only when discovery tools cannot inspect the current UI reliably. Do not derive routine in-app navigation targets from screenshots |
native-user-interactable-view-at-pointbundleIdnative-view-at-pointbundleId| 应用类型 | 发现工具 | 返回内容 |
|---|---|---|
| 目标应用发现 | | 当前设备屏幕的无障碍元素树(iOS AX-service或Android uiautomator),包含归一化的框架坐标。适用于任何应用、系统对话框和主屏幕——无需重启应用或提供 |
| React Native应用 | | React组件树,包含名称、文本、testID和(点击坐标:x,y) |
| 应用范围的原生界面 | | 低层级的应用范围无障碍元素,包含归一化和原始坐标;需要 |
| 权限/系统模态弹窗 | | |
| 最终视觉备选方案 | | 仅当发现工具无法可靠检查当前UI时使用。不要从截图中获取常规应用内导航目标 |
native-user-interactable-view-at-pointbundleIdnative-view-at-pointbundleIddescribedescribeax-servicescreenshotnative-describe-screenbundleIddescribescreenshotdescribedebugger-component-treeaccessibilityIdentifierviewClassNamenative-describe-screenbundleIdrestart-appnative-user-interactable-view-at-pointnative-view-at-pointax-servicescreenshotbundleIdnative-describe-screendescribescreenshotdescribedebugger-component-treeaccessibilityIdentifierviewClassNamebundleIdnative-describe-screenrestart-appnative-user-interactable-view-at-pointnative-view-at-point{ "udid": "<UDID>", "x": 0.5, "y": 0.5 }0.01.0{ "udid": "<UDID>", "x": 0.5, "y": 0.5 }0.01.0{ "udid": "<UDID>", "fromX": 0.5, "fromY": 0.7, "toX": 0.5, "toY": 0.3 }fromY > toY"durationMs": 500{ "udid": "<UDID>", "fromX": 0.5, "fromY": 0.7, "toX": 0.5, "toY": 0.3 }fromY > toY"durationMs": 500{ "udid": "<UDID>", "centerX": 0.5, "centerY": 0.5, "startDistance": 0.2, "endDistance": 0.6 }startDistance: 0.2endDistance: 0.6startDistance < endDistancestartDistance > endDistanceangle: 0durationMs: 300"angle": 90"durationMs": 500{ "udid": "<UDID>", "centerX": 0.5, "centerY": 0.5, "startDistance": 0.2, "endDistance": 0.6 }startDistance: 0.2endDistance: 0.6startDistance < endDistancestartDistance > endDistanceangle: 0durationMs: 300"angle": 90"durationMs": 500{
"udid": "<UDID>",
"centerX": 0.5,
"centerY": 0.5,
"radius": 0.15,
"startAngle": 0,
"endAngle": 90
}radius: 0.15endAngle > startAngle"durationMs": 500{
"udid": "<UDID>",
"centerX": 0.5,
"centerY": 0.5,
"radius": 0.15,
"startAngle": 0,
"endAngle": 90
}radius: 0.15endAngle > startAngle"durationMs": 500references/gesture-examples.md"interpolate": 10references/gesture-examples.md"interpolate": 10{ "udid": "<UDID>", "button": "home" }homebackpowervolumeUpvolumeDownappSwitchactionButton{ "udid": "<UDID>", "button": "home" }homebackpowervolumeUpvolumeDownappSwitchactionButton{ "udid": "<UDID>", "text": "Hello, world!" }keyboardkeyboard{ "udid": "<UDID>", "text": "Hello, world!" }keyboardkeyboard{ "udid": "<UDID>", "text": "search query", "key": "enter" }enterescapebackspacetabspacearrow-uparrow-downarrow-leftarrow-rightf1f12"delayMs": 100{ "udid": "<UDID>", "text": "search query", "key": "enter" }enterescapebackspacetabspacearrow-uparrow-downarrow-leftarrow-rightf1f12"delayMs": 100{ "udid": "<UDID>", "orientation": "LandscapeLeft" }PortraitLandscapeLeftLandscapeRightPortraitUpsideDown{ "udid": "<UDID>", "orientation": "LandscapeLeft" }PortraitLandscapeLeftLandscapeRightPortraitUpsideDownscreenshotdescribescreenshotdescribeAllowOKDon't AllowNot NowContinuedescribenative-describe-screendebugger-component-tree{ "udid": "<UDID>", "rotation": "LandscapeLeft" }scalescale: 1.0{ "udid": "<UDID>", "scale": 1.0 }screenshotdescribescreenshotdescribeAllowOKDon't AllowNot NowContinuedescribenative-describe-screendebugger-component-tree{ "udid": "<UDID>", "rotation": "LandscapeLeft" }scalescale: 1.0{ "udid": "<UDID>", "scale": 1.0 }| Problem | Solution |
|---|---|
| Screenshot times out | Restart the simulator-server via |
| No booted iOS simulator | Call |
| No ready Android device | Call |
| 问题 | 解决方案 |
|---|---|
| 截图超时 | 通过 |
| 无已启动的iOS模拟器 | 使用iOS的 |
| 无就绪的Android设备 | 使用 |
run-sequencerun-sequencerun-sequencerun-sequencerun-sequencerun-sequencerun-sequencerun-sequencegesture-tapgesture-swipegesture-customgesture-pinchgesture-rotatebuttonkeyboardrotateudidargsdelayMsgesture-tapgesture-swipegesture-customgesture-pinchgesture-rotatebuttonkeyboardrotateudidargsdelayMs{
"udid": "<UDID>",
"steps": [
{ "tool": "gesture-swipe", "args": { "fromX": 0.5, "fromY": 0.7, "toX": 0.5, "toY": 0.3 } },
{ "tool": "gesture-swipe", "args": { "fromX": 0.5, "fromY": 0.7, "toX": 0.5, "toY": 0.3 } },
{ "tool": "gesture-swipe", "args": { "fromX": 0.5, "fromY": 0.7, "toX": 0.5, "toY": 0.3 } }
]
}{
"udid": "<UDID>",
"steps": [
{ "tool": "keyboard", "args": { "text": "hello world" } },
{ "tool": "keyboard", "args": { "key": "enter" } }
]
}{
"udid": "<UDID>",
"steps": [
{ "tool": "gesture-tap", "args": { "x": 0.5, "y": 0.15 } },
{
"tool": "gesture-swipe",
"args": { "fromX": 0.5, "fromY": 0.7, "toX": 0.5, "toY": 0.3 },
"delayMs": 300
}
]
}{
"udid": "<UDID>",
"steps": [
{ "tool": "gesture-swipe", "args": { "fromX": 0.5, "fromY": 0.7, "toX": 0.5, "toY": 0.3 } },
{ "tool": "gesture-swipe", "args": { "fromX": 0.5, "fromY": 0.7, "toX": 0.5, "toY": 0.3 } },
{ "tool": "gesture-swipe", "args": { "fromX": 0.5, "fromY": 0.7, "toX": 0.5, "toY": 0.3 } }
]
}{
"udid": "<UDID>",
"steps": [
{ "tool": "keyboard", "args": { "text": "hello world" } },
{ "tool": "keyboard", "args": { "key": "enter" } }
]
}{
"udid": "<UDID>",
"steps": [
{ "tool": "gesture-tap", "args": { "x": 0.5, "y": 0.15 } },
{
"tool": "gesture-swipe",
"args": { "fromX": 0.5, "fromY": 0.7, "toX": 0.5, "toY": 0.3 },
"delayMs": 300
}
]
}adb reverse tcp:8081 tcp:8081argent-metro-debuggerreinstall-app-gdescribescreenshotreinstall-app.apk.appadb reverse tcp:8081 tcp:8081argent-metro-debuggerreinstall-app-gdescribescreenshotreinstall-app