在做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获取视图元素外,还可以使用下面的几个框架来获取,就是要多花些功夫熟悉学习下

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

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

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

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

Android自动化-如何获取视图元素属性?的更多相关文章

  1. (四)Jsoup 获取 DOM 元素属性值

    第一节: Jsoup 获取 DOM 元素属性值 Jsoup获取DOM元素属性值 比如我们要获取博客的href属性值: 我们这时候就要用到Jsoup来获取属性的值 : 我们给下示例代码: package ...

  2. JAVA解析HTML,获取待定元素属性

    Document doc = Jsoup.parseBodyFragment(previewHtml); //html内容解析为Document int index = 0; StringBuffer ...

  3. android自动化必备之界面元素

    包名&类名 packageName(包名) 应用的身份标识,系统通过包名识别不同的应用,如两个相同包名的应用在安装时候会覆盖 activityName(类名) Activity:android ...

  4. vue click事件获取当前元素属性

    Vue可以传递$event对象 <body id="app"> <ul> <li @click="say('hello!', $event) ...

  5. Jsoup(四)-- Jsoup获取DOM元素属性值

    1.获取博客园的博客标题以及博客地址,获取友情链接 2.代码实现: public static void main(String[] args) throws Exception{ // 创建http ...

  6. UI自动化之特殊处理四(获取元素属性\爬取页面源码\常用断言)

    获取元素属性\爬取页面源码\常用断言,最终目的都是为了验证我们实际结果是否等于预期结果 目录 1.获取元素属性 2.爬取页面源码 3.常用断言 1.获取元素属性 获取title:driver.titl ...

  7. appium+python自动化:获取元素属性get_attribute

    使用get_attribute()获取元素属性,括号里应该填写什么? 查看appium源码 如果是获取resource-id,填写resourceId self.driver.find_element ...

  8. Selenium2学习-028-WebUI自动化实战实例-026-获取页面元素值或者元素属性值

    在自动化脚本编写过程中,经常需要获取页面元素的文本进行判断,以便对于不同的文本进行不同的处理.比如:很多的购物网站,加入购物车的按钮是有多个状态的(加入购物车.到货通知.暂不销售等),那么在实际的操作 ...

  9. 如何通过源生js获取一个元素的具体样式值 /* getCss:获取指定元素的具体样式的属性值 curElement:[dom对象] attr:[string] */

    昨天的博客些的真的是惨不忍睹啊!!!但是我的人生宗旨就是将不要脸的精神进行到底,所以,今天我又来了.哈哈哈哈哈! 方法一:元素.style.属性名:(这个有局限性--只能获取行内样式的值,对于样式表或 ...

  10. jquery获取、改变元素属性值

    //标签的属性称作元素属性,在JS里对应的DOM对象的对应属性叫DOM属性.JS里的DOM属性名有时和原元素属性名不同. //==================================操作元 ...

随机推荐

  1. dotnet 推荐一个使用 Json 直接路由通讯的 IPC 库

    本文将和大家推荐一个我所在团队开源的本机多进程通讯 IPC 库,此 IPC 支持使用 JSON 格式进行直接路由通讯,具有使用方便,稳定性高,性能好的优点 这是我所在的团队在 GitHub 上使用最友 ...

  2. (数据科学学习手札160)使用miniforge代替miniconda

    本文已收录至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,conda作为Python数据科学领域 ...

  3. HarmonyOS 鸿蒙隔离层设计

    在软件开发中,底层库的更换或升级是常见的需求,这可能由性能提升.新功能需求或安全性考虑等因素驱动.为了降低迁移成本,良好的设计模式至关重要. 在版本迭代过程中,网络请求库可能会经历从A到B再到C的演进 ...

  4. 对象存储服务的Lambda特性

    AWS S3提供了Lambda服务,详见Amazon S3 Object Lambda. 技术方案 作为兼容AWS S3能力的对象存储服务,交付Lambda特性时,关注点有: 实现方式 SDK 独立进 ...

  5. zabbix API笔记

    python简单demo 输出id为111主机的主机群组信息 import requests import json request_headers = {"Content-Type&quo ...

  6. 一个支持Sora模型文本生成视频的Web客户端

    大家好,我是 Java陈序员. 最近 Open AI 又火了一把,其新推出的文本生成视频模型 -- Sora,引起了巨大的关注. Sora 目前仅仅只是发布预告视频,还未开放出具体的 API. 今天, ...

  7. LLM基础能力实现-书生浦语大模型实战营学习笔记2&大语言模型4

    大语言模型-4.LLM基础能力实现 书生浦语大模型实战营学习笔记-2.LLM基础能力实现 本文包括第二期实战营的第2课内容.本来是想在笔记中给官方教程做做补充的,没想到官方教程的质量还是相当高的,跟着 ...

  8. go-admin开发小技巧

    搜索条件参考下面的文件 https://github.com/go-admin-team/go-admin-core/blob/master/tools/search/query_test.go ty ...

  9. Linux-0.11操作系统源码调试

    学习操作系统有比较好的两种方式,第一种是跟着别人写一个操作系统出来,<操作系统真相还原>.<Orange's:一个操作系统的实现>等书就是教学这个的:另一种方式就是调试操作系统 ...

  10. SQL使用ROW_NUMBER() OVER函数自动生成序列号

    语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) 简单的说ROW_NUMBER()从1开始,为每一条分组记录返回一个数字,这里的ROW ...