UiAutomator是Google提供的用来做安卓自动化测试的一个Java库,基于Accessibility服务。
微信红包自打出世以来就极其受欢迎,抢红包插件可谓红极一时.今天,我们重新谈谈抢红包插件的哪些事儿.本质上,抢红包插件的原理不难理解,其过程就是在收到红包时,自动模拟点击.做过自动化UI测试的童鞋应该非常熟悉了.那么问题来了,我们怎么知道有没有红包,又怎么模拟点击操作呢?在PC端我们有按键精灵,那么在Android设备上呢?话说也偶然,Google为了让Android系统更实用,为用户提供了无障碍辅助服务(AccessibilityService).
AccessibilityService运行在后台,并且能够收到由系统发出的一些事件(AccessibilityEvent,这些事件表示用户界面一系列的状态变化),比如焦点改变,输入内容变化,按钮被点击了等等,该种服务能够请求获取当前活动窗口并查找其中的内容.换言之,界面中产生的任何变化都会产生一个时间,并由系统通知给AccessibilityService.这就像监视器监视着界面的一举一动,一旦界面发生变化,立刻发出警报。

Uiautomator2的是因为Uiautomator是基于java的,希望能够使用Python编写代码

在手机上运行了一个http rpc服务,将uiautomator中的功能集成进来,然后再将这些http接口封装成python库。

https://github.com/openatx/uiautomator2

u2通信流程

image.png
image.png

  1. 安装u2包 pip install uiautomator2 -i https://pypi.douban.com/simple
  2. 对移动设备进行初始化 python -m uiautomator2 init 模拟器上就会多一个ATX的应用

image.png
agent相关:
adb shell /data/local/tmp/atx-agent server -d
adb shell /data/local/tmp/atx-agent server -d —stop

Activity和控件

activity是用户和应用程序交互的窗口,一个activity相当于我们的一个网页
pip install weditor
在命令行执行 weditor listening on http://192.168.0.104:17310

image.png
连接的时候要保证atx-agent是启动的
安卓控件:
https://blog.csdn.net/weixin_38423829/article/details/80566203

定位操作:
UiSelector 和 Xpath

布局

image.png
image.png

控件属性

image.png

文本定位方式

image.png
image.png

className

image.png

resourceId

image.png