1.安装adb和jdk
uiautomator2
uiautomator
语言:java
功能:Android自动化测试工具,可完成安卓机的各项操作
uiautomator2
语言:pyhton
功能:Android自动化测试工具,可完成安卓机的各项操作
底层:Google uiautomator
能完成的操作有:
安装软件、启动软件、关闭软件
单击、双击、长按滑动
移动文件
shell命令
返回、home键、菜单键、音量、相机等。
解锁、旋屏、截图
等
ATX
uiautomator程序守护
atx-agent实际上还是一个http服务器,运行在电脑上的python程序使用HTTP协议跟手机上atx-agent通信,atx-agent随后启动uiautomator.apk这个应用,将收到的请求转换成UiAutomator的UI自动化操作。
python脚本
导包
import uiautomator2 as u2
连接 atx
# 0.0.0.0 为本机,127.0.0.1这个也行,这个连接是在手机上运行的
d = u2.connect('http://0.0.0.0:7912')
# 如果远程操作,就填入手机ATX显示的ip,下面有图
# d = u2.connect('http://172.17.2.237:7912')
python
启动app
# 字符串为包名,下面有获取包名教程
sess = d.session("com.tencent.wework")
获取包名 先通过线连,然后打开usb调试,再电脑命令行(先安装adb)
adb shell dumpsys activity | grep -i run
adb
此时看到的一排Run里面的第一个就是当前打开的软件包名,下面那个就是上一次打开的软件包名,往下以此类推,这里我们看到第一个的包名,也就是微信com.tencent.mm,这里我们用企业微信做示范,所以不用它,用第二个。也就是com.tencent.wework
模拟点击
def my_click(sess, ele, timeout=3):
ele.wait(timeout=timeout) # 等待超时,因为可能此时界面动画,或者反映迟钝,该控件还没出现
x, y = ele.center() # 找到该空间的中间坐标
sess.touch.down(x, y) # 在此坐标按下
time.sleep(0.3)
sess.touch.up() #等待3秒后抬起
def click_search_btn(sess):
ele = sess(resourceId=package_name+":id/e3g", #找到该空间的id
className="android.widget.TextView",# 找到该空间的类名
instance=0) #如果根据属性查找有多个控件,则找第一个
my_click(sess, ele, 20)
click_search_btn(sess)
python
输入搜索
print('begin to input')
ele = sess(resourceId="com.tencent.wework:id/dpu", className="android.widget.EditText")
ele.set_text(phone) # 将手机号填入
print('end to input')
time.sleep(2)
# print(u"点击搜索")
# 点击搜索
sess(resourceId="com.tencent.wework:id/azq",
className="android.widget.RelativeLayout").child(className="android.widget.TextView").click() # 因为该控件没有id,所以先找它爹,再找它爹的儿子控件,.click()直接触发点击事件。
ele1 = sess(resourceId="com.tencent.wework:id/sa",
className="android.widget.TextView")
ele1.get_text() # 获取标签文本内容
python
adb取标签
要先把ATX服务给停掉,不然取不到。
首先下载adb,在adb的tools文件夹内,打开monitor
adb
然后点击手机,再点击Dump vive.
adb_Dumpvive
点击控件,即可显示id和classname
获取id
实际工作流程
1、给手机安装软件
离线
将init_machine.sh,及android_package.zip上传至/data/local/tmp目录下
给手机安装termux,此为命令行工具,打开软件
输入su,切换至管理员账户
输入cd data/local/tmp,因为云手机不能打/符,所有用tab键来凑齐。
输入sh init_machine.sh,即可安装好软件和服务
usb线连
在电脑上输入python -m uiautomator2 init即可
2、打开ATX
打开ATX 点击"启动uiautomator"
3、打开QpythonL
一定要先打开这个软件,不然你python脚本会上传不成功,
打开软件后的顺序为:
文件
scripts
4、上传脚本
将auto_test.py和wx_helper.py上传至/storage/emulated/0/qpython/scripts文件夹下
5、运行脚本
打开QpythonL点击auto_test.py文件,点击下方的三角符号
本文链接:http://172.17.0.88:8360/post/wx_uiautomator2.html
– EOF –
作者 admin 发表于 2019-03-04 12:56:46 ,并被添加「 微信 」标签 ,最后修改于 2019-03-04 14:15:59
« 欢迎使用 Firekylin
各服务端口说明 »
Comments
请在后台配置评论类型和相关的值。