android app 覆盖安装_Android&iOS App元素定位利器——Macaca Inspector

Macaca Inspector是一款用于Android和iOS App元素定位的工具,特别适用于iOS环境。它提供稳定的元素信息获取,支持XPath简化。本文介绍了在Mac环境下设置Macaca Inspector的步骤,包括Xcode、Node.js、libimobiledevice等组件的安装,并强调了XCTestWD的签名配置和TEAM_ID的获取。此外,还提及了可能遇到的报错及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Macaca Inspector 简介

阿里开源的Macaca框架中的一个小工具,用于获取App元素信息,该工具比较稳定,响应速度较快 可以给出最简化的xpath信息以及元素xpath的绝对路径,可以支持IOS和Android。

Macaca Inspector 主页地址:https://macacajs.github.io/app-inspector/zh/

环境搭建

Macaca Inspector 同时支持Android 和iOS App元素的获取,由于Android 已经有UIautomatorViewer这个工具可以很方便的获取元素了,所以这里主要分享如何在Mac环境来获取iOS app元素。

Xcode

请在App store中安装 Xcode9 或者更高版本

Node.js

使用brew安装Nodejs,安装命令如下

brew install nodejs

安装后使用如下命令安装是否成功

atxdeMac-mini:~ atx$ npm -v
6.4.1
atxdeMac-mini:~ atx$ node -v
v8.16.0

libimobiledevice

libimobiledevice用于连接iOS设备,类似于Android 的adb。使用如下命令进行安装:

brew install libimobiledevice --HEAD

安装后我们使用可以常用命令来检测是否安装成功

1.获取设备的udid

atxdeMac-mini:~ atx$ idevice_id -l
6dd5e55bf4204cd5ad8042dc4ecb2b703bbxxxxx

usbmuxd

安装 usbmuxd 以便于通过 USB 通道测试 iOS 真机,不需要测试真机则不用安装

brew install usbmuxd

ios-webkit-debug-proxy

应用中如含有 WebView,请安装 ios-webkit-debug-proxy

$ brew install ios-webkit-debug-proxy

macaca-cli

安装Macaca命令行工具macaca-cli

npm i -g macaca-cli

XCTestWD

  • Macaca 依赖 macaca-ios,而 macaca-ios 依赖安装到真机的 XCTestWD,所以要确保 Macaca 最终调用的 XCTestWD 是安装到真机上的 XCTestWD

  • iOS 真机上的 XCTestWD 需要签名(TEAM_ID),且和被测试的app一样。

TEAM_ID获取
  • 获得TEAM_ID首先要需要获得Apple开发者证书,这个可以自己申请或者向公司申请。然后使用XCode创建一个新的项目或者打开已有的Xcode项目,如下图所示 Signing certificate 栏中最后括号里面的就是TEAM_ID

334c12f3cb55af42d50963fe45f3d924.png

  • 然后安装有 TEAM_ID 的 macaca-ios

# 安装有 TEAM_ID 的 macaca-ios
$ DEVELOPMENT_TEAM_ID=TEAM_ID npm i macaca-ios -g
调试XCTestWD
  1. 安装完成后使用Xcode打开XCTestWD工程文件,默认安装路径如下:

 /usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/XCTestWD/XCTestWD.xcodeproj 
  1. 打开之后如下图所示,依次将XCTestWDUITestsXCTestWDUnitTest的证书配置好。

XCTestWDUITests e03bfe3e1837b9731d24a3a37a88347c.png

XCTestWDUnitTest b76fe75ab3e6a56ab0b5598013557b74.png

  1. 如下图所示,选中XCTestWDUITests菜单

c1be06cf091f3c88a9337de501a2bb7b.png

  1. 连接好设备,选择对应的真机设备。

4fb0c63bc5ff23843778fe28fdecb30f.png

  1. 最后点击 Product->Test 会在设备上安装一个XCTestUI的App。

dd18c76908f0a72aa5c80dca566e74c3.png

app-inspector 安装

将 TEAM_ID 通过环境变量传入覆盖安装App Inspector,注意修改TEAM_ID 为你个人真实的TEAM_ID

DEVELOPMENT_TEAM_ID=TEAM_ID npm install app-inspector -g

重新执行Product->Test,然后可以关闭xcode了

启动app-inspector

使用如下命令启动,

app-inspector -u  udid  --verbose

启动成功后控制台会显示查看地址

inspector start at: http://电脑ip:5678

然后在浏览器里面打开输出的链接,即可查看元素。

c4d068129fe2b618ac0c652de29d5146.gif

报错相关

  1. XCTestWD路径错误

atxdeMac-mini:~ atx$ app-inspector -u ece81864b51f3e0535bf86e9ab24f9209e9727f0 --verbose
>> request.js:11:12 [master] pid:6335 get remote update info failed.
>> server.js:16:12 [master] pid:6335 server start with config:
{ port: 5678,
verbose: true,
udid: 'ece81864b51f3e0535bf86e9ab24f9209e9727f0',
ip: '172.28.211.142',
host: 'atxdeMac-mini.local',
loaded_time: '2020-01-09 14:49:04' }
>> app-inspector.js:45:12 [master] pid:6335 server start at: http://172.28.211.142:5678
process.env.MACACA_XCTESTWD_ROOT_PATH
/usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/XCTestWD/
>> xctest-client.js:58:14 [master] pid:6335 project path not found
Error: >> xctest-client.js:58:14 [master] pid:6335 project path not found
at Logger.error (/usr/local/lib/node_modules/app-inspector/node_modules/xlogger/lib/xlogger.js:169:9)
at XCTest.checkProjectPath (/usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/lib/xctest-client.js:58:14)
at XCTest.init (/usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/lib/xctest-client.js:43:10)
at new XCTest (/usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/lib/xctest-client.js:39:10)
at Object.exports.initDevice (/usr/local/lib/node_modules/app-inspector/lib/ios.js:79:12)
at exports.initDevice.next ()
at onFulfilled (/usr/local/lib/node_modules/app-inspector/node_modules/co/index.js:65:19)
at /usr/local/lib/node_modules/app-inspector/node_modules/co/index.js:54:5
at new Promise ()
at co (/usr/local/lib/node_modules/app-inspector/node_modules/co/index.js:50:10)
  • 错误原因: 执行XCTestWD.xcodeproj的路径没找到

  • 解决方案:更新XCTestWD路径。特别是环境变量:MACACA_XCTESTWD_ROOT_PATH的路径。

  • 解决步骤:

使用如下命令打开环境变量配置文件

vi ~/.bash_profile  

然后根据XCTestWD.xcodeproj实际所在路径去添加如下环境变量路径

export MACACA_XCTESTWD_ROOT_PATH=/usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/XCTestWD/

然后更新配置文件,验证是否配置生效

source ~/.bash_profile  #更新环境变量配置文件

atxdeMac-mini:Test atx$ echo $MACACA_XCTESTWD_ROOT_PATH #验证环境变量配置是否生效
/usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/XCTestWD/

更多干货

  • Python自动化日志收集

  • Appium参数配置—yaml

  • Mac 环境Appium自动化测试环境搭建

  • Windows环境Appium自动化测试环境搭建

  • 众里寻他千百度—Appium Android 元素定位方式

  • Android自动化测试设备弹窗处理

  • Ubuntu+Docker+STF环境搭建

  • Mac OS环境搭建STF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值