三、详解Poco辅助窗功能
1. 查看不同项目的UI树
Poco 是一种 基于UI识别 的测试框架。AirtestIDE对Poco框架进行了使用支持,提供了UI查看、脚本自动录制等辅助功能。
Poco对不同类型的应用支持情况:
平台 | Airtest | Poco |
---|---|---|
Android 原生APP | √ | 直接使用 |
iOS 原生APP | √ | 直接使用 |
Unity3D | √ | Poco-SDK接入文档 |
Cocos2dx-lua | √ | Poco-SDK接入文档 |
Cocos2dx-js | √ | Poco-SDK接入文档 |
cocos-creator | √ | Poco-SDK接入文档 |
Egret | √ | Poco-SDK接入文档 |
UE4 | √ | Poco-SDK接入文档 |
Other engines | √ | 可自行接入 |
WeChat Applet&webview | √ | 参考文档 随着微信更新可能会失效 |
Windows, MacOS | √ | 努力开发中,敬请期待 |
Netease | √ | 网易内部引擎帮助文档 |
在IDE中,我们在设备窗口打开待测应用之后,就可以到Poco辅助窗中下拉选择对应的poco模式,来查看应用的UI树了(选择模式时,脚本编辑窗口顶部会让我们选择是否插入对应的初始化代码,我们选择Yes即可):
注意
除了Android和iOS原生应用,无需接入pocosdk,在辅助窗内选择对应的模式即可查看应用的UI树;其他引擎渲染的游戏应用,都需要 事先在游戏应用的项目源码中接入pocosdk ,之后再打包出来安装到待测设备上,这样才能使用poco辅助窗的对应模式来查看该应用的UI树。
2. 冻结模式查看控件
待辅助窗的UI树成功刷出来之后,我们可以利用冻结模式来查看控件的详细属性:
1)主要用途
查看当前画面中各位置的UI呈现范围。
2)进入方式
点击冻结按钮 / 或者 单击UI渲染树上任意条目。
3)具体表现
- 屏幕画面会冻结(设备操作失效),UI渲染树的数据也会停止刷新。
- 伴随鼠标在画面中的移动,对应位置的UI元素会被标记框标出。
- 鼠标左键点击,可以在log输出窗中查看对应控件的详细属性。
4)层叠UI
可以通过右键菜单,对不同层叠顺序的UI进行选择。
5)退出方式
再次点击冻结按钮 / 或者 右键菜单-"Poco Mode"-"Normal"
3. 检视模式查看控件
或者我们可以使用监视器模式来查看应用的控件详情,与刚才的冻结模式最大的区别是,此时查看控件,如我们对控件进行操作,设备画面也会跟着变化:
1)主要用途
伴随设备操作,查看不同页面UI的渲染情况。
2)进入方式
点击检视器按钮。
3)具体表现
- 设备画面可以正常交互,UI渲染树的数据正常刷新。
- 伴随鼠标在画面中的移动,对应位置的UI元素会被标记框标出。
- 鼠标左键点击,可以在log输出窗中查看对应控件的详细属性。
4)层叠UI
可以通过右键菜单,对不同层叠顺序的UI进行选择。
5)退出方式
再次点击检视器按钮 / 或者 右键菜单-"Poco Mode"-"Normal"
4. 节点自助搜索
点击UI树的控件,Ctrl+F
可以 隐藏/显示 搜索框 (支持拼音模糊搜索):
5. poco脚本录制功能
合理借助脚本录制辅助功能,可以大大提高poco脚本的书写效率。当前AirtestIDE提供的Poco录制功能分为两种:单步录制、伴随操作自动录制。
1)单步录制Poco脚本
单步录制Poco脚本包含以下2种方式:
- 生成UI节点的poco代码:
双击UI树中的目标条目,即可插入对应UI节点的poco代码。 - 生成UI节点的x-path代码:
UI树中的目标条目上,点击右键菜单-'UI path-code'
,即可生成完整父子链的poco代码。
注意
单步录制的代码中的操作代码(如 :".click()"
等)需要手动添加。
2)自动录制Poco脚本
① 进入方式
点击Poco自动录制按钮。
② 具体表现
设备画面可以正常交互,UI渲染树的数据正常刷新。
伴随鼠标在画面中的移动,对应位置的UI元素会被标记框标出。
伴随设备操作(点击、滑动),即可插入对应UI节点的poco代码。
③ 退出方式
再次点击自动录制按钮 / 或者 :右键菜单-"Poco Mode"-"Normal"
6. windows-app的poco辅助功能
有一些Windows-app已经接入了 pocosdk
(例如Unity游戏窗口),我们同样能够使用AirtestIDE来方便地查看和选中UI节点。但是在使用这个功能前,需要事先告诉AirtestIDE这个Windows窗口所在位置以及窗口大小。
在“选项”-“设置”-“Poco”,选择“Windows Content Area Rect”,框选窗口主画面后双击确认(右键/esc可取消),随后即可开始使用Poco相关功能了,如图所示:
注意
目前Poco仅支持少量接入了pocosdk的Windows-app,更多Windows-app的支持可以期待我们后续版本的功能更新!
7. poco辅助窗使用常见问题
1)不清楚自己的应用该选择何种Poco模式
- Android原生应用选择Android模式
- iOS原生应用选择iOS模式
- 游戏应用最好向开发咨询是何种引擎渲染,之后接入pocosdk再来选择对应的模式,比如unity游戏则选择unity模式
2)辅助窗刷不出UI树
① 原生应用
目前Android和iOS原生应用无需接入poco-SDK即可直接使用,在Poco初始化时,会向手机中安装相关的apk,请务必保证手机允许了相关apk的安装。部分型号的手机需要在设置中开启 允许通过ADB安装应用
等相应选项才能进行安装。
部分厂商的手机需要额外的设置,例如需要手工在输入法选项中,将Yosemite输入法设置为默认,详情请参考 部分厂商设备特殊问题 。
② 游戏应用
游戏应用都是由各种引擎渲染的,都需要事先 接入poco-SDK 才能获取到UI结构信息(游戏没有事先接入SDK是无法直接看到UI树的),请务必仔细阅读 接入文档 ,进行SDK接入后再进行使用。
3)录制的脚本无法回放
录制的Poco脚本并不一定是正确/最优的脚本,如果录制的Poco脚本无法达到我们的预期效果,我们可以查看UI树然后自己重新编写正确的Poco脚本。这部分内容可以参考我们的 Poco脚本编写 章节。
4)一段时间后UI树没有正确刷新
可以尝试先将Poco模式选项的下拉菜单改为 Stop
,再重新选择你所需要的模式,例如 Android
, IDE将重新建立与手机的Poco通信连接。
有时候也可能因为手机内存不足,手机自动将后台的pocoservice进程关闭了,导致连接断开,这种情况建议尝试换一台配置更好的手机重试。