python3+android自动化之Uiautomator2
2021/4/14 20:55:27
本文主要是介绍python3+android自动化之Uiautomator2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
python3+android自动化之Uiautomator2
- 1、环境准备:
- android sdk:[下载地址](https://developer.android.google.cn/studio/releases/platform-tools?hl=zh-cn)
- uiautomator2 :`pip install uiautomator2 `
- 2、连接手机
- 3、代码展示
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') #包名
这篇关于python3+android自动化之Uiautomator2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程