我是靠谱客的博主 鲜艳豌豆,最近开发中收集的这篇文章主要介绍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的全部内容,希望文章能够帮你解决python3+android自动化之Uiautomator2所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部