名称: 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