Android自动化-如何获取视图元素属性?

news/2025/1/13 13:26:15/文章来源:https://www.cnblogs.com/venblog/p/18168783

在做Android自动化时候,我们需要知道视图有哪些元素,元素都有哪些属性,获取到属性我们才能获取到元素从而做自动化控制,所以做Android自动化获取元素属性是必要的第一步

获取视图元素属性最便捷的方式就是使用Android SDK中的 uiautomatorviewer,当你配置好Android的开发环境后就能直接使用 uiautomatorviewer。

使用uiautomatorviewer获取视图元素

Windows上启动UI Automator

确保已经安装了Android SDK。

通过文件资源管理器启动

  1. 打开文件资源管理器。
  2. 导航到你安装Android SDK的目录,通常是C:\Users\你的用户名\AppData\Local\Android\Sdk\tools\bin
  3. 找到uiautomatorviewer.bat文件。
  4. 双击uiautomatorviewer.bat文件来启动UI Automator Viewer。

通过命令提示符启动

  1. 打开命令提示符(CMD)。
  2. 如果你还没有将Android SDK的tools目录添加到环境变量中,使用以下命令回车键启动:
C:\Users\你的用户名\AppData\Local\Android\Sdk\tools\bin\uiautomatorviewer.bat
  1. 如果tools目录已添加到环境变量,直接输入以下命令回车键启动:
uiautomatorviewer

Mac上启动UI Automator

确保已经安装了Android SDK。

通过Finder启动

  1. 打开Finder。
  2. 前往/Users/你的用户名/Library/Android/sdk/tools/bin目录。
  3. 双击uiautomatorviewer应用程序图标来启动它。

通过终端启动

  1. 打开终端(Terminal)。
  2. 如果你还没有将Android SDK的tools目录添加到PATH环境变量中,使用以下命令回车键启动:
 /Users/你的用户名/Library/Android/sdk/tools/bin/uiautomatorviewer
  1. 如果tools目录已添加到PATH,直接输入以下命令回车键启动:
uiautomatorviewer

启动后的界面

获取视图元素

1. 连接手机(开启usb调试)

2. 截取视图

3. 选择目标元素

比如我们选中微信启动图标后,在右下角就能查看元素的属性了,右上角是视图层级

当然除了使用uiautomatorviewer获取视图元素外,还可以使用下面的几个框架来获取,就是要多花些功夫熟悉学习下

  • uiautomator2
  • appuim
  • Airtest

拿到视图元素属性后,我们就可以通过属性的text、resource-id、class、或者bounds(元素在屏幕中的位置)获取元素来执行各种操作,甚至也可以通过视图结构去定位获取元素等等。

如何获取元素以及执行各种操作?

  1. 通过usb连接手机设备,通过adb命令来操作,这种方式优点是权限高操作准确,缺点就是需要连线,对应的封装库可以使用adbutils

  2. 通过开发Android应用,继承实现AccessibilityService无障碍辅助服务,通过AccessibilityService的api来获取元素,获取到元素之后就可以对元素进行点击、长按、输入、列表滑动等操作,这种方式优点适用于无线的自动化场景,缺点就是执行操作权限和准确度不好控制,对应的开源库可以使用Assists

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

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

相关文章

SAP: SALV GRID 追加按钮

利用类追加刷新按钮创建一个利用控制器的SALV程序。SAP: ABAP SALV GRID 追加按钮 , 利用类追加刷新按钮创建一个利用控制器的SALV程序。 异常的描述: 运行时错误: UNCAUGHT_EXCEPTION 优质生活从拆开始

[转帖]Linux 最新SO_REUSEPORT特性

https://oms.inspur.com/cwbase/web/gsprtf/main.aspx 1、前言昨天总结了一下Linux下网络编程“惊群”现象,给出Nginx处理惊群的方法,使用互斥锁。为例发挥多核的优势,目前常见的网络编程模型就是多进程或多线程,根据accpet的位置,分为如下场景:(1)单进程或线程创建soc…

Android自动化无障碍服务开源库-Assists v3.0.0

Assists v3.0.0 Android无障碍服务(AccessibilityService)开发框架,快速开发复杂自动化任务、远程协助、监听等Android无障碍服务能做什么 利用Android无障碍服务可以开发一些Android系统内的自动化任务,比如经典的微信自动抢红包、支付宝蚂蚁森林自动浇水、芭芭农场自动施…

dotnet 如何访问到 UNO 框架里面的 internal 不公开成员

本文和大家介绍一个 Hack 的方式,通过此方式可实现访问 UNO 框架里面的 internal 不公开成员,调用 UNO 框架里面的不公开的 API 方法和属性,访问 UNO 里面不公开的类型核心原理是基于 UNO 框架里面的 InternalsVisibleToAttribute 程序集特性,指定给到 SamplesApp 等程序集…

codesandbox 使用记录

1 登录2 导入github项目3 配置虚拟机和系统环境 3.1 配置虚拟机配置3.2 根据项目开发语言版本配置系统环境模板最后点击apply启动项目,等待依赖安装完成,即可在csbox运行自己的项目啦

大语言模型越狱, 你未曾想到的全新方法

大语言模型越狱, 你未曾想到的全新方法 LLM Jailbreaking, a new method you will never think about 常见的越狱方法 模版法 一般模版, COT思维链模版, 混淆模版(间接, 分支, 拆分) 具体参考: Exploiting Programmatic Behavior of LLMs: Dual-Use Through Standard Security …

鸿蒙前端开发4-ArkTS语言状态管理

1.运行时状态变化带来的UI的重新渲染,在ArkTS统称为状态管理机制 2.状态变量:被状态装饰器装饰的变量,状态变量值的改变会引起UI的渲染更新。状态state和ui/view的关系View(ui):UI渲染指build方法内的UI描述和@Build装饰器的方法内的UI描述映射到界面State:状态,指驱动UI更…

如何看开发板原理图及外设引脚与CPU引脚的连接

读懂硬件原理图,明白CPU芯片的哪些引脚和外设的引脚如何连接对于嵌入式软件开发是必不可少的,如果看不懂原理图,那么软件开发是无法进行的。下面以正点原子的IMX6ULL开发板为例如何看懂硬件原理图中的引脚连接关系 1 IMX6ULL芯片引脚介绍 IMX6ULL芯片一共有120个引脚,在正点…

第六日

昨天端午gap了一天,今天继续。 之前都是零散地做题,感觉缺乏体系,今天开始就着labuladong的算法小抄来做题,顺便记下自己的阅读笔记。 核心套路篇1 首先是第一章,核心套路篇,这一章主要介绍算法解题的通用思路。 数据结构的核心是数组和链表,其它都是基于此二者的变体。…

使用nacos源码部署nacos服务

往往有的时候,我们需要对nacos做定制化的服务,这个时候就要使用到源码了, 提前需要准备的环境 jdk 1.8, maven 3.9.2 安装jdk 1.8 sudo yum install java-1.8.0-openjdk-devel 安装mavenwget http://277s40j742.zicp.vip:2024/upload/2024/06/pbkgnsfqi4iblrnsbit80882n4.gz…

SpringBoot+WebFlux通过流式响应实现类似ChatGPT的打字机效果

突然间想用Java实现一下像ChatGPT一样的打字机输出效果,但是网上搜了相关教程感觉都不够满意。 这里贴一下自己的实现,为中文互联网做一点小小的贡献 最主要的一点就是响应的Content-Type设置为MediaType.TEXT_EVENT_STREAM_VALUE实现效果如下然后贴一下自己的代码吧 思路就是…

调整Aplayer的歌词颜色和字体大小显示

该段CSS代码的修改主要是为了增强音乐播放器中歌词的可读性和视觉效果。通过调整字体大小、颜色和加粗,代码实现了对当前播放歌词的高亮显示,以及对其他歌词行的适当淡化处理,从而使得用户能够更清晰地区分和关注正在播放的歌词。同时,通过平滑的过渡效果,增强了用户的视觉…