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

AXe iOS模拟器自动化工具是一个命令行工具,用于通过Apple可访问性API和HID自动化iOS模拟器交互。它支持触摸手势模拟、文本输入、硬件按钮控制、屏幕截图、视频录制和可访问性元素检查,适用于iOS应用UI测试、自动化脚本编写、截图/视频捕获和可访问性测试任务。关键词:iOS模拟器自动化、UI测试、触摸手势、屏幕录制、可访问性测试、移动开发工具。

测试 0 次安装 1 次浏览 更新于 2/23/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 "Submit" --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 "Continue" --pre-delay 2.0 --udid $UDID

滚动查找元素

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

表单填写

axe tap --label "Email" --udid $UDID
axe type 'user@example.com' --udid $UDID
axe tap --label "Password" --udid $UDID
axe type 'secret123' --udid $UDID
axe tap --label "Sign In" --udid $UDID

操作后截图

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