欢迎来到今天的讨论,我们将探讨,python中的乘法函数 python中怎么用乘法,让我们开始吧!
Python控制安卓模拟器——uiautomator2模块
目录
Python控制安卓模拟器——uiautomator2模块介绍【1】安装 python【2】安装 adb1]下载[adb:[2]配置环境变量【3】安装uiautomator2【4】连接设备(安卓模拟器)【5】u2指令控制设备常用指令【6】安装weditor【7】元素操作元素属性控制元素【8】adb常用命令
介绍
uiautomator2是一个自动化测试开源工具,仅支持Android平台的原生应用测试python 可视化设计界面。
大致流程分为:
Python端:运行脚本,向移动端发送HTTP请求移动端:安装atx-agent,然后atx-agent启动uiautomator2服务进行监听,并识别Python脚本,转换为uiaotomator2代码连接方式:移动设备需要通过WIFI(同一网段)或USB连接才能接收到PC端发来的请求准备工具:python
,uiautomator2
,adb
,weditor
【1】安装 python
安装python:
【2】安装 adb
[1]下载adb:
需要翻墙
下载完成后直接解压安装包
[2]配置环境变量
1.打开电脑的设置,选择“高级系统设置”后,再点击“环境变量设置”
2.选择 系统变量中的“PATH”
3.将解压后的adb文件地址,配置在环境变量中。 (如果需要配置Android SDK中的ADB,那么地址就是“{Android SDK安装地址}/android_sdk/platform-tools/”)
4.配置成功后保存,在命令行输入“adb”,输出结果如下,则代表adb已安装成功。
【3】安装uiautomator2
pip安装
pip install uiautomator2
【4】连接设备(安卓模拟器)
首先需要将设备调成开发者模式本次案例使用的是逍遥模拟器
然后Python终端为手机下载atx-agent
python -m uiautomator2 init # 手机端安装ATX
这条信息表明此时已成功初始化了一个 AdbDevice 对象,序列号为 127.0.0.1:21513
接下来就可以通过使用AdbDrvice对象来对设备进行各种操作
出现小黄车就代表所有的准备环节都已经成功
【5】u2指令控制设备
连接设备之后还有一步操作:
安卓设备打开atx小黄车启动u2服务
常用指令
import uiautomator2 as u2
# 连接设备
device = '127.0.0.1:21513'
d1 = u2.connect(device)
# 设备信息
print(())
# 当前运行中的app 示例:{'package': '', 'activity': '.AppActivity'}
print(d1.app_current())
# 所有运行中的app 示例:['com.github.uiautomator', 'com.android.defcontainer']
print(d1.app_list_running())
# 安装应用
url = ''
d1.app_install(url)
# 启动应用(传入包名)
app_pack = ''
d1.app_start(app_pack)
# 启动应用(传入app名)
app_name = '微信'
d1(text=app_name).click()
# 显示分辨率
x, y = d1.window_size()[1], d1.window_size()[0]
# 单击
d1.click(x, y)
# 双击
d1.double_click(x, y)
# 拖拽 (start_x/start_y: 起始x坐标/起始y坐标) (end_x/end_y: 终点x坐标/终点y坐标)
# duration: 滑动所需时间,默认0.5s
(start_x, start_y, end_x, end_y, duration=0.5)
# 截图
# 获取绝对路径的上级目录(当前文件夹)
target_path = .dirname(.abspath(__file__))
target_path = (target_path, '屏幕截图')
os.makedirs(target_path, exist_ok=True)
d1.screenshot(f'{target_path}')
【6】安装weditor
注:weditor一般配合其他测试框架使用,通常用于元素定位和生成代码
吐槽一句,这个工具bug很多,如果测试环境需要定位的元素并不复杂那么不用也行,可以配合坐标定位和图像定位(OpenCV)使用
# 可能会安装失败
pip install -i weditor # 豆瓣安装
pip install --pre -U weditor
# 上面如果安装失败的话 直接安装指定版本 0.6.4 / 0.6.3
pip install --upgrade weditor==0.6.4
安装成功后直接在控制台输入:
weditor
接着会自动打开浏览器
如果设备为成功链接请先在终端输入adb指令查看设备是否连接
adb devicers
【7】元素操作
元素属性
凡是能被WEditor采集到的元素都能进行操作
控制元素
与刚刚的鼠标操作不同,我们还可以利用元素操作配合weditor进行定位和控制
我们以逍遥市场为例
import uiautomator2 as u2
# 连接设备
device = '127.0.0.1:21513'
d1 = u2.connect(device)
#
# # 获取当前界面的 XML 层次结构信息
print(d1.dump_hierarchy())
#
# # 根据text定位 获取特定app的信息
print(d1(text="逍遥市场").info)
#
# # 根据index定位 获取特定app的信息
print(d1(index=4).info)
# 根据className获取元素信息
print(d1(className='android.widget.TextView').info)
# 根据Xpath定位
d1_xpath = d1.xpath('//*[@resource-id="com.android.chrome:id/search_box_text"]')
# 输入文本
d1_xpath.set_text('Hello')
【8】adb常用命令
adb devices # 查看当前设备
adb shell pm list packages # 查看手机里面所有包名
adb shell pm list packages -3 # 查看手机里面所有第三方包名
adb shell dumpsys activity activities # 该命令的功能是获取当前正在被操作的app的activity相关信息
adb shell pm clear .activity # 清除缓存数据
# 启动程序
# 格式:常规命令 + 包名/activity
# 注意:appActivity返回值本来是.MainActivity,需要去掉中间的反斜线!
adb shell am start -n .MainFrameActivity
adb shell pm clear # 关闭程序并且清除所有数据,相当于重新安装
adb shell am force-stop # 停止运行程序
adb shell "ps | grep " # 查看程序进程,判断是否运行
adb shell /system/bin/screencap -p # 截频并保存文件在手机上为
adb pull # 将手机文件保存到D盘文件下
adb push # 将电脑文件导入手机
adb shell screenrecord /sdcard/demo.mp4 # 录制视频
adb shell input text 123 # 输入内容
adb shell input keyevent 4 # 按键操作
# 4 返回操作
# 1 菜单
# 3 主页
# 21 光标左移
# 22 光标右移
# 67 删除
# 61 tab
adb shell input tap 282 923 # 点击某个坐标
adb shell input swipe 300 1000 300 500 # 下滑500px
adb shell input swipe 288 929 288 929 1000 # 长按1000ms
原文地址1:https://blog.csdn.net/AZURE060606/article/details/137265580
参考资料:python中用turtle画一个圆形 https://blog.csdn.net/SXIAOYAN_/article/details/140061099