手机自动化操作:uiautomator

更多精彩内容在公众号。

前面介绍的adb方法都不好实现代码自动化控制,如果想要实现代码自动化控制的话就要用到uiautomator这个工具

UiAutomator是一个用于Android平台的自动化测试框架。它允许开发人员编写自动化测试脚本来模拟用户在Android设备上的操作,例如点击按钮、输入文本、滑动屏幕等。UiAutomator框架提供了一组API,可以与设备上的UI元素进行交互,并提供了丰富的功能来执行测试用例和获取测试结果。通过使用UiAutomator,开发人员可以自动化执行各种测试任务,包括功能测试、性能测试和用户界面测试等

首先安装python的依赖库。pip3 install -U uiautomator2

然后执行python -m uiautomator2 init 安装包含httprpc服务的apk到手机+atx-agent, minicap, minitouch。手机会弹出安装界面提示是否安装

图片

完成的安装结果如下

图片

安装好了后会显示atx等app

图片

Python中使用代码如下:

图片

执行结果如下,表示连接成功

图片

Uiautomator的原理是通过查找手机上的元素定位,然后点击。类似于网页点击的原理。

首先电脑上安装

pip3 install webitor

安装完成后,cmd界面执行python -m weditor  跳出手机元素界面如下。

第一步:输入设备id, 也就是adb devices查出来的ID

第二步:点击连接

第三步:点击Dump Hierarchy

然后再第4步就会出现手机的界面

图片

在右边的coding界面可以看到对应的python连接代码。这点最好的地方就是不用亲自写代码。当你在左边屏幕上点击的时候,中间Selected Element会显示设置的XPathi定位坐标点

图片

双击代表进入设置界面。同时进入后右边的coding界面就会显示点击的代码

图片

再点击wifi,代码同步更新

图片

点击关闭wifi

图片

这样,通过一步步点击操作,你就能得到各个步骤的代码。然后把这些代码集成进去。就可以形成一个完整的自动化点击代码。注意:因为点击后手机刷新是要消耗时间的,所以两次点击之间最好等待一会儿。不要连续两次点击挨着来。

如果不利用界面,可以用

d. dump_hierarchy()的方式把当前界面的元素机构图打印出来。然后找你需要的元素。比如我想开关wifi。找到text=”开启WLAN”. 代码如下,就可以把wifi开关打开了

import uiautomator2 as u2

d = u2.connect()

ret=d.dump_hierarchy()

print(ret)

d(text="开启WLAN").click()

图片

详细的使用参考官方文档。

https://github.com/openatx/uiautomator2

更多精彩内容在公众号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/707295.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

回归的无分布预测推理

摘要 我们利用保形推理,开发了回归中无分布预测推理的一般框架。所提出的方法允许使用回归函数的任何估计量构建响应变量的预测带。所得的预测带在标准假设下保留了原始估计量的一致性,同时保证了有限样本边际覆盖,即使这些假设不成立。我们…

Unity Mirror 从入门到入神(一)

Mirror从入门到成神 文章目录 Mirror从入门到成神简介NetworkClientRegisterPrefabConnect (string address)Disconnect ()activeactiveHost NetworkServerSpawn 简介 Mirror是一个unity网络同步框架,基于MonoBehaviour生命周期的回调的基础上进行数值的同步&#…

文本三剑客-awk

一、awk的介绍 1.1awk的简介 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具 可以在无交互的模式下实现复杂的文本操作 相较于sed常作用于一整个行的处理,awk则比较倾向于一行当中分成数个字段来处理,因为awk相当适合小型的文本…

SQL已知2商品的总价,求商品的数量

已知商品1和2价格,求商品1的数量(商品2的数量自动计算),使得商品总价小于并最接近目标总价的值; 解决: 使用MySQL数据库: -- 创建表 CREATE TABLE products (price_1 INT,price_2 INT,target_p…

回顾程序员18年自己取得的一些成绩有想卖ERP源码的冲动

好久没来csdn发文章,记录自己程序员生涯的心得了,回顾自己2006年湘大信息计算科学专业毕业,当年和班里其他两个同学被招录进富士康,做为新干班签了3年半的合同,在那呆了2年,感觉富士康毕竟是个制造业&#…

HackTheBox-Machines--Bank

文章目录 0x01 信息收集0x02 文件上传漏洞利用0x03 权限提升方法一:SUID提权方法二:配置不当提权 Bank 测试过程 0x01 信息收集 1.端口扫描 发现 ssh(22)、DNS(53)、HTTP(80) 端口 nmap -sC -sV 10.129.29.200访问 80 端口,页面为Apache2 U…

翻译《The Old New Thing》- Stupid debugger tricks: Calling functions and methods

Stupid debugger tricks: Calling functions and methods - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20070427-00/?p27083 Raymond Chen 2007年04月27日 一个比较笨的调试技巧:调用函数和方法 在过去,如果你想在…

大模型时代,交换机技术演变、性能分析、衡量指标

OSI协议及在高性能计算中向RDMA的过渡 协议是为计算机网络内的数据交换而建立的一组规则、标准或协议。在法律层面,OSI七层协议被视为国际标准。该协议于20世纪80年代引入,旨在通过其七层网络模型标准化计算机间通信,以满足开放网络的要求。…

Lazyboy品牌发布会“球幕气膜”

Lazyboy品牌发布会“球幕气膜”为品牌活动提供了一个独特、现代化、环保的展示空间。这座球幕气膜不仅为发布会提供了一个视觉震撼的场地,也为与会嘉宾带来了全新的体验。作为轻空间(江苏)膜科技有限公司(以下简称“轻空间”&…

C++ 数据结构算法 学习笔记(25) - 图及其企业级应用

C 数据结构算法 学习笔记(25) - 图及其企业级应用 图的故事导入 故事情节 Jack 自从买车后,交通出行方便了,心自然就野了!身边的各种朋友自然就多了起来! 有一天晚上,一个年轻漂亮的女同事生日,Jack 受邀…

可用在vue自动导入的插件unplugin-auto-import

在大多数vue3开发中,基本所有页面都会引用vue3 componsition api,如下代码 想这种vue3 架构中自带的api,如果在全局配置一下的话,就可以减少一部分代码量,只是在代码编译的时候,会添加相应的引用&#xff…

ArcGIS arcpy代码工具——关于标识码的那些事(查找最大标识码、唯一性检查、重排序、空值赋值)

系列文章目录 ArcGIS arcpy代码工具——批量对MXD文件的页面布局设置修改 ArcGIS arcpy代码工具——数据驱动工具批量导出MXD文档并同步导出图片 ArcGIS arcpy代码工具——将要素属性表字段及要素截图插入word模板 ArcGIS arcpy代码工具——定制属性表字段输出表格 ArcGIS arc…