python3+android自动化之Uiautomator2
作者:互联网
python3+android自动化之Uiautomator2
1、环境准备:
android sdk:下载地址
uiautomator2 :pip install uiautomator2
2、连接手机
首次建议通过数据线连接手机开启usb调试模式,使用adb命令连接手机:
adb connect xxxx # xxx 为手机设备号
如果手机拥有root权限可以安装 ADB WIFI 来无线连接手机,前提是电脑与手机在同一个局域网内。
adb connect 192.168.x.x:5555 # 通过手机IP与ADB WIFI所给端口进行连接
3、代码展示
import uiautomator2 as u2
from PIL import ImageFilter
# 连接手机
devices = u2.connect_wifi("192.168.1.6")
# 设备信息
print(devices.info)
# 更详细的设备信息
print(devices.device_info)
# 屏幕大小
print(devices.window_size())
# 截屏
devices.screenshot('/xxx/test.png') #截屏并存储在指定位置
im = devices.screenshot()
im2 = im.filter(ImageFilter.BLUR) # 对截屏图像进行模糊操作
im3 = im2.resize((200,300)) # 调整图片大小
im2.save('xxxx')
# 清除app数据
devices.app_clear('tv.danmaku.bili') #包名
# 正在运行的app信息
print(devices.app_current())
# 打开app方式1
devices(text='哔哩哔哩').click()
# 打开app方式2
devices.app_start('tv.danmaku.bili') #包名
devices.app_start('tv.danmaku.bili',wait=True) # 等APP加载完后 在往下执行 默认等待时间20s 超过后报错
# 设置全局默认等待时间
devices.wait_timeout = 30
devices.implicitly_wait(30) # 两种方式等同
devices(resourceId="expand_search").click(timeout=50) # 单独设置超时时间
# 模拟按键
"""
home #手机Home键
back #手机返回键
left #对应键盘上的向右键<-
right #对应键盘上的向右键->
up #对应键盘上的向上键
down #对应键盘上的向下键
center #选中?
menu #菜单
search #查找?
enter #对应键盘上的Enter键
delete(or del) #对应键盘上的DEL键 用于删除
recent(recent apps) #任务切换
volume_up #声音向上调整
volume_down #声音向下调整
volume_mute #静音按键
camera #拍照
power #电源键
"""
devices.press("volume_up")
# 元素定位
devices(resourceId="expand_search") # 根据resourceID定位
devices(text='哔哩哔哩') # 根据文本定位
devices(textContains='哩哔') # 根据所包含文本定位
devices(textMatches='*哩哔') # 根据所包正则定位
devices(textStartsWith='哔') # 根据所包正则定位
devices(textStartsWith='哔',checkable=True,checked=True) # 多条件定位
devices(textStartsWith='哔', instance=2) # 多个匹配,根据索引instance定位
# 点击操作
devices.click(686,1000) # 根据全局坐标点击
devices.click(0.765,0.896) # 根据位置占屏幕百分比点击
devices(text='哔哩哔哩').click*() # 定位后再点击
# 滑动操作
devices.swipe(startx,starty,endx,endy) # 基础滑动操作 全局直接滑动
'''
left down up right
'''
devices.swipe_ext('left',scale=0.9) # 拓展滑动操作 (滑动方向,与滑动比例)
e = devices(text='哔哩哔哩')
e.swipe('down',steps=100) # 先定位元素,后滑动 (steps为滑动时间)
# 输入 & 清空
elem = devices(resourceId="tv.danmaku.bili:id/search_bar")
elem.send_keys("xxxx")
elem.clear_text()
# 关闭app
devices.app_stop('tv.danmaku.bili') #包名
标签:定位,滑动,app,devices,哔哩,手机,android,Uiautomator2,python3 来源: https://blog.csdn.net/weixin_44485643/article/details/115707837