在做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. WPF 已知问题 清空 CollectionView 的 SortDescriptions 可能抛出空异常

    本文记录一个 WPF 的已知问题,在通过 CollectionViewSource 获取到 CollectionView 之后,如果 CollectionViewSource 对象已被 GC 回收,将 ...

  2. 非技术 对以后各大应用功能与 AI 助手的思考

    本文记录我对于 AI 助手在未来给各大应用或网站或设备带来的影响的思考 结论:未来的各大应用或网站或者是设备,都不会出现满屏的眼花缭乱的功能,取代的是各自有一个专属的 AI 助手,通过 AI 助手与人 ...

  3. dotnetCampus.UITest.WPF 一个支持中文用例的界面单元测试框架

    本文来安利大家一个支持使用中文做用例名的 WPF 界面 UI 单元测试框架 卖点 有没有觉得命名太难?有没有觉得单元测试的命名更难?没错,这是一个业界的大问题.很多团队都会因为单元测试的用例函数命名太 ...

  4. 2019-6-11-C#-标准性能测试

    title author date CreateTime categories C# 标准性能测试 lindexi 2019-06-11 08:36:22 +0800 2018-06-18 15:58 ...

  5. win10的开机启动文件夹

    1.在C:\Users(用户)\Administrator(当前用户名)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs(「开始」菜单)\P ...

  6. Git/SourceTree版本管理

    目录 视频课程: 工作区: 文件状态: 回退版本: 合并分支 合并提交 冲突 删除分支 忽略文件 汉英对照表 多端同步 添加远程仓库 推送代码到远程仓库 拉取代码 视频课程: https://www. ...

  7. WEB服务与NGINX(18)- nginx rewrite功能详解

    目录 1. nginx的rewrite功能详解 1.1 rewrite功能概述 1.2 rewrite模块的常用指令 1.2.1 if指令 1.2.2 set指令 1.2.3 break指令 1.2. ...

  8. 数据转换2-无人机航拍倾斜摄影转换成OSGB格式

    首先软件的下载和安装参考下面链接 http://www.xue51.com/soft/53013.html 0.首先打开软件,要打开2个哦. 打数据处理开后台 ContextCapture Engin ...

  9. leaflet叠加图片图层

    <!DOCTYPE html> <html> <head> <title>Layers Control Tutorial - Leaflet</t ...

  10. DashVector x 通义千问大模型:打造基于专属知识的问答服务

    本教程演示如何使用向量检索服务(DashVector),结合LLM大模型等能力,来打造基于垂直领域专属知识等问答服务.其中LLM大模型能力,以及文本向量生成等能力,这里基于灵积模型服务上的通义千问 A ...