uiautomator2(UIAutomator2比较慢)
Appium python appium 用 uiautomator2 后报错
只要将Appium卸载,重新安装模式选择为此账户安装,成功运行。
python3 uiautomator2 (二) 、操作app
1、连接手机
2、启动 python -m weditor
3、以抖音为例,手机打开抖音
4、current: 获取当前包名和activity
控制台输入: uiautomator2 current
5、通过包名打开抖音app
如果我们想打开一个干净的app,可以使用app_clear 先清除app数据再打开
如上图,如果我们要定位图中2的元素时,再上几层级都有相同的元素,我们就可通过父级元素进行定位子级元素
或者
取第二个元素:
通过兄弟定位
如图想关注某个抖音号为 aaaa,的用户,可现通过定位抖音号,再去查找它的兄弟“关注”按钮
二、uiautomator2之无线连接手机设备失败解决方法
1、手机和电脑连接到同一个wifi
2、开启远程adb ,(需要手机通过USB连接到电脑)
3、执行adb tcpip 5555 (执行结果:restarting in TCP mode port: 5555 )
4、断开USB 后,执行adb connect 192.168.1.27:5555 (192.168.1.27是手机的局域网IP地址)
? ? ?其中,手机ip查看方法:设置---关于手机---状态信息
5、执行adb devices 或 adb devices?-l,确认可以看到设备信息
二、长时间不用或者关机重启后设备连接显示为离线(offline)状态的解决方法
1、如果长时间没有使用,先重复上面的步骤4—5,显示的状态为devices时,表示连接成功
2、如果显示状态为offline时,需要重启adb进程,操作步骤如下:
adb kill-server? // 命令行执行
adb start-server? // 命令行执行
重复上面的4—5步骤,显示为devices表示连接成功
其他解决: uiautomator通过wifi连接手机报错uiautomator2.exceptions.ConnectError: ('addr is invalid or atx-agent is no... -
使用uiautomator2实现对手机app的操作(windows)
本文将介绍如何使用uiautomator2对手机app进行点击、翻页、滑动等操作,本次目标app为考研帮
首先在我们本机进行adb工具安装,那么什么是 adb 工具呢? adb 工具全称(Android调试桥)命令行窗口,用于通过电脑端与模拟器或者是设备之间的交互。 adb 工具包含以下3个部分
?- adb client :命令行程序,“adb”用于从shell或者脚本中运行adb命令
?- adb server: ADB Server是运行在PC上的一个后台进程
?- adbd: 程序“adbd” 作为一个后台进程在Android设备或者模拟器系统中运行
adb能用来做什么?
可以安装卸载apk、移动设备和PC之间拷贝文件、查看设备上安装的应用信息、文件管理、按键操作等等。
ui自动化之uiautomator2原理
原理是在手机上运行了一个http rpc服务,将uiautomator中的功能开放出来,然后再将这些http接口封装成Python库。Python脚本执行每个操作都会转换成一个对http rpc服务的请求,http rpc服务接受这些请求,并调用原生uiautomator的api实现在手机上的操作。
uiautomator2,appium, airtest几个工具浅析
因为此次研究用的python语言编写,所以整个详细介绍都是基于python的,且是针对android端的调研,下面三者都是可以支持python
github地址:
在gihub上面已经有较详细的介绍。首先uiautomator2是针对uiautomator的优化,uiautomator的功能以外,还有一些新功能的加入,能跨app(比如:很多App有选择相册、打开相机拍照,这就是跨App测试)但是只针对原生的android应用,无法使用录制,适合较简单,操作不复杂的原生android应用。 里面有
一些源码的解析,对于整个uiautomator2原理有一个大概的了解
github地址:
appium(android)最底层实际上是基于uiautomator2的,在上层封装了一层,使得可以使用webdriver的方式编写自动化脚本, 里面详细介绍了该框架的每一部分,使用教程: 。在使用的过程中,明显可以感受到对比uiautomator使用复杂了很多,需要搭建较多的环境
github地址:
该框架最突出的优点是图像识别,还没阅读过源码,看到相关资料,推断出它就是OpenCV(图像识别)+ uiautomator实现的,这个的深入学习后续补充
官网地址: