AXeiOS模拟器自动化工具Skill axe-ios-simulator

AXe iOS模拟器自动化工具是一款专为iOS模拟器设计的命令行自动化解决方案。它通过Apple可访问性API和HID接口,提供触摸手势模拟、文本输入、硬件按钮控制、屏幕截图、视频录制和可访问性元素检查等完整功能。适用于移动应用UI测试自动化、iOS开发调试、无障碍测试和交互流程录制等场景。关键词:iOS模拟器自动化、移动应用测试、UI自动化测试、可访问性测试、命令行工具、屏幕录制、手势模拟、开发调试工具。

测试 0 次安装 0 次浏览 更新于 2/28/2026

名称: axe-ios-simulator 描述: 使用AXe CLI进行iOS模拟器自动化,支持触摸手势、文本输入、硬件按钮操作、屏幕截图、视频录制和可访问性检查。适用于iOS模拟器交互自动化、编写UI测试、捕获屏幕截图/视频或检查可访问性元素。触发场景包括iOS模拟器自动化、AXe CLI使用、模拟器点击/滑动/手势命令或可访问性测试任务。

AXe iOS模拟器自动化

AXe是一个通过Apple可访问性API和HID进行iOS模拟器自动化的单二进制CLI工具。

安装

brew install cameroncooke/axe/axe

快速开始

# 获取模拟器UDID
axe list-simulators
UDID="<模拟器-udid>"

# 基本交互
axe tap -x 100 -y 200 --udid $UDID
axe tap --label "Safari" --udid $UDID
axe type 'Hello World!' --udid $UDID
axe gesture scroll-down --udid $UDID
axe button home --udid $UDID
axe screenshot --udid $UDID

触摸与手势

# 坐标点击
axe tap -x 100 -y 200 --udid $UDID

# 通过可访问性标识符或标签点击
axe tap --id "myButton" --udid $UDID
axe tap --label "提交" --udid $UDID

# 带时间控制
axe tap -x 100 -y 200 --pre-delay 1.0 --post-delay 0.5 --udid $UDID

# 滑动
axe swipe --start-x 100 --start-y 300 --end-x 300 --end-y 100 --udid $UDID
axe swipe --start-x 50 --start-y 500 --end-x 350 --end-y 500 --duration 2.0 --delta 25 --udid $UDID

# 底层触摸控制
axe touch -x 150 -y 250 --down --udid $UDID
axe touch -x 150 -y 250 --up --udid $UDID
axe touch -x 150 -y 250 --down --up --delay 1.0 --udid $UDID

手势预设

预设 使用场景
scroll-up 内容导航
scroll-down 内容导航
scroll-left 水平滚动
scroll-right 水平滚动
swipe-from-left-edge 返回导航
swipe-from-right-edge 前进导航
swipe-from-top-edge 关闭/取消
swipe-from-bottom-edge 打开/显示
axe gesture scroll-down --udid $UDID
axe gesture swipe-from-left-edge --udid $UDID
axe gesture scroll-up --screen-width 430 --screen-height 932 --udid $UDID
axe gesture scroll-down --pre-delay 1.0 --post-delay 0.5 --udid $UDID

文本输入

# 直接输入文本(特殊字符使用单引号)
axe type 'Hello World!' --udid $UDID

# 从标准输入(自动化最佳)
echo "复杂文本" | axe type --stdin --udid $UDID

# 从文件
axe type --file input.txt --udid $UDID

# 通过HID键码单独按键
axe key 40 --udid $UDID  # 回车键
axe key 42 --duration 1.0 --udid $UDID  # 长按退格键

# 按键序列
axe key-sequence --keycodes 11,8,15,15,18 --udid $UDID  # "hello"

硬件按钮

axe button home --udid $UDID
axe button lock --duration 2.0 --udid $UDID
axe button side-button --udid $UDID
axe button siri --udid $UDID
axe button apple-pay --udid $UDID

截图与视频

# 截图(自动生成文件名)
axe screenshot --udid $UDID

# 截图到指定路径
axe screenshot --output ~/Desktop/screenshot.png --udid $UDID

# 录制视频到MP4
axe record-video --udid $UDID --fps 15 --output recording.mp4
axe record-video --udid $UDID --fps 10 --quality 60 --scale 0.5 --output low-bandwidth.mp4

# 流式传输MJPEG
axe stream-video --udid $UDID --fps 10 --format mjpeg > stream.mjpeg

# 管道传输到ffmpeg
axe stream-video --udid $UDID --fps 30 --format ffmpeg | \
  ffmpeg -f image2pipe -framerate 30 -i - -c:v libx264 -preset ultrafast output.mp4

Ctrl+C停止录制。AXe会最终化MP4文件并将路径输出到标准输出。

可访问性检查

# 完整屏幕可访问性树
axe describe-ui --udid $UDID

# 特定点的可访问性信息
axe describe-ui --point 100,200 --udid $UDID

自动化模式

等待后点击模式

axe tap --label "继续" --pre-delay 2.0 --udid $UDID

滚动查找元素

for i in {1..5}; do
  axe describe-ui --udid $UDID | grep -q "目标元素" && break
  axe gesture scroll-down --udid $UDID
done
axe tap --label "目标元素" --udid $UDID

表单填写

axe tap --label "邮箱" --udid $UDID
axe type 'user@example.com' --udid $UDID
axe tap --label "密码" --udid $UDID
axe type 'secret123' --udid $UDID
axe tap --label "登录" --udid $UDID

操作后截图

axe tap --label "提交" --post-delay 1.0 --udid $UDID
axe screenshot --output result.png --udid $UDID