python-uiautomator2是一个自动化测试开源工具,仅支持Android平台的原生应用测试。python-uiautomator2封装了谷歌自带的uiautomator2测试框架,提供便利的python接口。他允许测试人员直接在PC上编写Python的测试代码,操作手机应用,完成自动化,大大提高了自动化代码编写的效率。
原理:
python-uiautomator2主要分为两个部分,python客户端,移动设备
整个过程
atx-agent
(守护进程), 随后atx-agent
启动uiautomator2服务(默认7912端口)进行监听环境安装
1:ADB:
各种安卓测试框架的基础工具包,安装参考:https://blog.csdn.net/L_201607/article/details/78150107
官网:http://adbshell.com/downloads
python -m uiautomator2 init
3:安卓设备安装atx-agent
首先设备连接到PC,并能够adb devices
发现该设备。
python -m uiautomator2 init
这个命令做的是:从github下载atx–agent文件,并推送到手机。在手机上安装包名为com.github.uiautomator
的apk
连接手机:
python-uiautomator2连接手机的方式有两种,一种是通过WIFI(ip),另外一种是通过USB(ip+id)。两种方法各有优缺点。 WIFI最便利的地方要数可以不用连接数据线,USB则可以用在PC和手机网络不在一个网段用不了的情况。
1.使用WIFI连接
手机获取到手机的IP,并确保电脑可以PING通手机。手机的IP可以在设置-WIFI设置里面获取到。
比如手机的IP是192.168.0.100
,连接设备的代码为
import uiautomator2 as u2
d = u2.connect('192.168.0.100')
2.使用USB连接
手机的序列号可以通过adb devices
获取到,假设序列号是123456f
,连接代码为
import uiautomator2 as u2
d = u2.connect_usb('123456f')
如何在WEditor如何定位元素呢:
定位方式
d(resourceId="com.smartisanos.clock:id/text_stopwatch").click()
d(text="秒表").click()
d(description="..").click()
d(className="android.widget.TextView").click()
# click 点击
d(text="Settings").click()
# long click 长点击
d(text="Settings").long_click()
# 等待元素的出现
d(text="Settings").wait(timeout=10.0)
对手机元素框输入中文:
如果可以定位到元素,直接通过set_text就可以输入中文
d(text="Settings").set_text("你好")
如果定位不到元素需要使用send_keys
方法,以及切换输入法
d.set_fastinput_ime(True)
d.send_keys("你好 Hello")
d.set_fastinput_ime(False) # 输入法用完关掉
截图:
d.screenshot("home.jpg")
获取图层信息:
xml = d.dump_hierarchy()
github:https://github.com/openatx/uiautomator2
本文主内容转自:https://testerhome.com/topics/11357
原创文章,转载请注明: 转载自URl-team