在做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 C# 通过 Vortice 使用 Direct2D 的 ID2D1CommandList 入门

    本文将告诉大家如何通过 Vortice 使用 D2D 的 CommandList 功能 本文属于 DirectX 系列博客,更多 DirectX 和 D2D 以及 Vortice 库的博客,请参阅我的 ...

  2. VSCode 中安装 esp-idf

    一.准备工具 首先需要安装好 VSCode 软件和 esp-idf 环境. 安装 VSCode VSCode 安装比较简单,我就不赘述了,进入官网下载一键安装即可 VSCode官网:https://c ...

  3. XAMPP安装与部署使用

    #注:本文章资料借鉴自于Sunny王维,地址:https://blog.csdn.net/qq_36595013/article/details/80373597 [一]XAMPP介绍 XAMPP. ...

  4. Pr 的导出视频

    导出视频 https://www.bilibili.com/video/BV1Vt411n7Bb?p=7

  5. WEB服务与NGINX(1)-HTTP协议基础

    WEB服务与NGINX(1) 目录 WEB服务与NGINX(1) 1. HTTP协议 1.1 WEB资源 1.2 URI简介 1.3 WEB服务请求处理过程 1.4 HTTP报文结构 1.4.1 re ...

  6. AIRIOT物联网低代码平台如何配置MQTT驱动?

    MQTT驱动配置简介 MQTT全称为消息队列遥测传输(英语:Message Queuing Telemetry Transport),是ISO 标准(ISO/IEC PRF 20922)下基于发布 ( ...

  7. mySql脚本转换成sqlserver脚本(主流数据库的脚本都能转换,需要使用powerdesigner)

    我使用的powerdesginer版本是16.5,只需要脚本文件就可以了,不需要安装mysql和sqlserver. 文件->反向工程->Database... 选择原脚本文件的数据库类型 ...

  8. 使用node压缩js

    先下载并安装Node 安装完成后打开cmd运行:node -v 运行:npm -v 确定node安装成功,然后安装uglifyjs,打开cmd输入下面命令: npm install uglify-js ...

  9. uniapp 添加操作

    1 分析: 2 需要动态的向数据库中插入数据,既然要进行添加操作,就会触发一个点击的事件,所以我们的第一步就是要先绑定事件 3 向服务器进行请求接口操作,请求的方法为 'POST' 4 最后就是在me ...

  10. 如何实现sm3加密

    SM3加密应用 何为sm3加密? SM3是由中国国家密码管理局设计的一种密码杂凑函数,类似于SHA-256和MD5等国际标准的散列算法.SM3算法是中国国家标准<GB/T 32905-2016 ...