【App自动化测试】(五)移动端自动化常用的元素定位工具——Uiautomatorviewer、 ATX WEditor、Appium Inspector

news2024/11/15 17:16:59

目录

  • 1. uiautomatorviewer
    • 1.1 uiautomatorviewer 的安装
    • 1.2 uiautomatorviewer 工具功能介绍
    • 1.3 uiautomatorviewer 的使用方法
  • 2. ATX WEditor
    • 2.1 ATX WEditor的安装
    • 2.2 ATX WEditor 功能介绍
    • 2.3 ATX WEditor 的使用
  • 3. Appium Inspector
    • 3.1 Appium Inspector安装与运行
    • 3.2 Appium Inspector 功能简介


前言
本文为在霍格沃兹测试开发学社中学习到的一些技术写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 😘

1. uiautomatorviewer

1.1 uiautomatorviewer 的安装

  • 工具的安装:Android SDK下自带的界面分析工具

在这里插入图片描述

❗ 注意:android 8以后的版本已经不支持此定位方式了

1.2 uiautomatorviewer 工具功能介绍

在这里插入图片描述

  • Open(第1个):是通过分析给定的文件定位
  • Device Screenshot(第2个):是将当前界面截图并分析xml结构
  • Device Screenshot with Conpressed Hierarchy(第3个):与第二个功能类似,但它会对页面内容进行压缩,导致一些控件定位不准确
  • Save(第4个):是保存当前界面的截图以及xml结构

1.3 uiautomatorviewer 的使用方法

在Appium server和模拟器(测试设备)启动的情况下,进行一下操作:

第一步:在命令行中输入 uiautomatorviewer,开启工具

在这里插入图片描述
启动后uiautomatorviewer界面:

在这里插入图片描述

第二步:点击Device Screenshot 按钮(操作栏中的第二个按钮),加载手机页面

在这里插入图片描述
第三步:进行页面内容分析

在这里插入图片描述

  1. 选中的元素。选中的元素会用红色虚线框框中;
  2. 选中元素的坐标位置
    • [148,227]:选中元素左上角坐标
    • [770,413]:选中元素右下角坐标
  3. 选中元素的详细属性值

2. ATX WEditor

2.1 ATX WEditor的安装

  • 要求:python 3.6+ 以上
  • 安装:weditor 是 python 的第三方库
    • pip install weditor 进行安装

安装最新版本一直失败,选择低版本安装成功,命令如下:ip install weditor==0.6.4

weditor历史版本查询:https://pypi.org/project/weditor/#history

2.2 ATX WEditor 功能介绍

在这里插入图片描述

  • 支持 Android 和 iOS 的界面分析
  • 通过设备的 uuid 连接设备
  • 展示页面结构

2.3 ATX WEditor 的使用

在Appium server和模拟器(测试设备)启动的情况下,进行一下操作:
第一步:在终端执行命令python -m weditor,启动ATX WEditor。

在这里插入图片描述
第二步:选择被测系统Android/iOS(图中标记1)。然后点击Connect(图中标记2)按钮,当Connect按钮上出现绿色树叶说明已经连接成功,然后点击Dump Hierarchy(图中标记3) 加载被测设备页面结构。

在这里插入图片描述
第三步:当页面结构加载成功之后,就可以选中元素进行分析。点击页面元素(图中标记4),然后在图中标记5出会呈现详细的解析结果。

3. Appium Inspector

3.1 Appium Inspector安装与运行

  • Appium Inspector 的下载地址:https://github.com/appium/appium-inspector/releases
  • 运行 Appium Inspector:
    1. 运行 Appium Server;
    2. 本地的 adb 连接设备;
    3. Appium Inspector中正确填写Appium Server配置(图中标记1)和Desired Capabilities参数(图中标记2);

    Appium Server配置说明:

    • Appium Server如果部署在本地,就按照图示填写配置,如果不是本地,就正确填写Remote Host。
    • Remote port默认是4723,一般不改动。
    • 如果使用的是Appium 2.0及以上版本的话Remote Path默认是/,如果使用的是Appium 1.X的话,Remote Path请使用/wd/hub
    • Appium Desktop 默认使用的是 Appium 1.X。
    1. 点击 Start Session(图中标记3)。

请添加图片描述

❗ 注意:在运行appium inspect 的时候需要检查一下weditor在手机上安装的ATX服务是否停止,因为ATX服务会占用uiautomator2.

3.2 Appium Inspector 功能简介

请添加图片描述

  1. Native App Model(图中标记1):原生应用模式
  2. Web/Hybrid App Model:Web/混合应用模式
  3. Select Elements:元素选择按钮,当处于Select Elements状态时,可以开始对页面中的元素进行选择定位解析。
  4. Swipe by Coordinates:使用坐标进行滑动操作,利用鼠标分别在A和B点进行点击,之后会根据点击的顺序与方向进行相应方向的模拟滑动操作。
  5. Tap by Coordinates:使用坐标进行点击操作
  6. Back:后退
  7. Refresh Soruce & Screenshot:刷新加载的页面
  8. Start Recording:脚本录制
  9. Search for element:查找元素,可以使用xpath等方式来定位元素。(可以用来验证定位的元素是否正确)

在这里插入图片描述

  1. Quit Session & Close Inspector:结束Session
  2. Tap:当选中元素后,可以使用Tap来进行点击操作
  3. Send Keys:向文本框中输入值
    请添加图片描述
  4. Clear:清除编辑框中的内容
  5. Copy Attributes to Clipboard:复制属性值
  6. Get Timing:获取选定元素响应时长。点击此按钮后,会在元素属性列表中多一个Time,展示元素的响应时长。
    在这里插入图片描述

文末说明:
接口测试中我们很容易混淆Session、cookie和token,你知道他们有什么区别吗?

快来跟我一起看,一篇文章让你了解三者的区别。😎
⬇⬇⬇⬇⬇⬇⬇
👍👍👍:接口测试经典面试题:Session、cookie、token有什么区别?

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AWS系列】第八讲:AWS Serverless之S3

目录 序言 1.基础介绍 1.1 概念介绍 1.2 原理介绍 1.3 应用场景 1.3.1 构建数据湖 1.3.2 备份和还原关键数据 1.3.3 以最低成本存档数据 1.3.4 运行云原生应用程序 1.4 S3 的功能 1.4.1 存储类 1.4.2 存储管理 1.4.3 访问管理 2 使用方法 2.1 创建存储桶 ​2.2…

用DIV+CSS技术设计的网页与实现制作【体育文化】dreamweaver学生网页设计

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

day074:XML、XML的解析

目录 一、XML 1.什么是XML 2.XML作用 3.XML语法规则 4.XML文件代码示例 二、解析XML文件 1.解析XML 2.常用的解析思想 (1)DOM思想 (2)图解 3.XML解析工具 一、XML 1.什么是XML XML(EXtensible Markup Lan…

【已解决】CentOS7等linux系统时区时间不对显示误差8小时

文章目录问题解决处理时区问题date查看时间、时区timedatectl查看时间、时区查看localtime设置时区处理时间问题问题 中国使用的是东八区上海时间,而linux服务器,一般默认是0时区UTC,所以需要将时区改为东八区CST将时区改为东八区后&#xf…

机器学习-决策树算法

机器学习-基础知识 机器学习-线性回归 机器学习-逻辑回归 机器学习-聚类算法 机器学习-决策树算法 机器学习-集成算法 机器学习-SVM算法 文章目录1. 决策树算法1.1. 什么是决策树/判定树1.2. 决策树归纳算法1.3. 熵概念1.4. 具体算法1.5. 决策树剪枝1.6. 连续值与缺失值处理1.6…

MCE | 正确认识阿尔茨海默病

什么是阿尔茨海默病 (Alzheimer Disease, AD)? 1907 年德国神经病理学家阿尔茨海默 (Alois Alzheimer) 仔细描述了一名具有进行性痴呆表现的 51 岁妇女 (Auguste Deter) 的症状: “她的记忆力严重受损。如果向她显示了对象,她会正确地命名它…

还在调API写所谓的AI“女友”,唠了唠了,教你基于python咱们“new”一个(深度学习)

文章目录前言停用词闲聊语料基础知识词的表示表达one-hot编码词嵌入大致原理实现简单版复杂版如何训练转换后的形状RNN循环网络RNNRNN投影图RNN是三维立体的LSTM&GRU构建数据配置数据集准备分词划分数据集加载模型搭建基本概念Encoder搭建DecoderAttention机制decoder与bea…

赫夫曼树赫夫曼编码的创建

目录基础知识点最优二叉树如何构造赫夫曼树赫夫曼编码编码与压缩文件代码结构体设计创建赫夫曼树创建构建赫夫曼编码基础知识点 赫夫曼树又称为最优树,是一种带权路径长短最短的树,有着广泛的应用。 最优二叉树 我们给出路径和路径长度的概念。从树的…

盘点面试常见的设计类算法问题

设计问题也是一种很重要的考察类型,特征是整体难度不大,但是要求结构合理、复用性好、考虑周全,代码规范等等。有些面试官不喜欢烧脑的动态规划等问题,就喜欢设计题,笔者曾经在面试微博和猿辅导都遇到过类似的问题。这…

【操作系统】2.1 进程与线程总结

2.1.1 操作系统之进程的定义、特征、组成、组织 2.1.1 操作系统之进程的定义、特征、组成、组织_StudyWinter的博客-CSDN博客 进程由程序段、数据段、进程控制块(PCB)三部分组成。 进程是进程实体的运行过程,是系统进行资源分配和资源调度的…

隆化的大米排之首 国稻种芯·中国水稻节:河北承德十大特产

隆化的大米排之首 国稻种芯中国水稻节:河北承德十大特产 中新网河北新闻10月8日电 (张桂芹 王思明) 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 中国农民丰收节国际贸易促进会 国稻种芯中国水稻节 中国三农智库网-功能性农业农业大健康大会报道&#xf…

python基础项目实战-俄罗斯方块

一、俄罗斯方块游戏设计分析: 俄罗斯方块是一款风靡全球,从一开始到现在都一直经久不衰的电脑、手机、掌上游戏机产品,是一款游戏规则简单,但又不缺乏乐趣的简单经典小游戏,上手容易,适用范围广泛,人所共知。俄罗斯方块游戏基本规则是油4个小方块组成的7种不同的规则图形…

DevOps持续部署的关键要素

当有版本通过持续集成流水线进行构建之后,就可以将其部署至某个具体的环境,这就需要自动化部署技术,将这个自动化部署和持续集成流水线连接起来,就可实现持续部署。如图1所示,实现持续部署的前提是至少拥有一条完整的自…

mipi phy理解

MIPI 接口广泛用于摄像头,和显示部分;PHY 属于 MIPI 接口的最底层部分,也就是物理层,直接涉及到物理连线,信号传输等等,要搞清楚 MIPI 的数据传送,那么从 PHY 入手了解,是一个不错的选择;在 PHY 上,只负责定义数据物理层的收发标准; MIPI 的 PHY 分为了 3 种: D-P…

BartForConditionalGeneration的使用细节

输入到 BartForConditionalGeneration 类的各个参数是什么意思&#xff1f; decoder_input_ids 是必须要以 <s> 开头的。这个参数可以自己生成然后传入到模型中&#xff0c;也可以交由代码自己生成&#xff08;一般会根据label右移一位再补0&#xff09; case 1&#x…

ImmunoChemistry艾美捷细胞内GSH测定试剂盒方案

用ImmunoChemistry艾美捷细胞内GSH测定评估细胞内谷胱甘肽水平的变化。这种全细胞谷胱甘肽测定采用专有的硫醇敏感染料ThioBright™ 绿色&#xff0c;以监测游离形式谷胱甘肽&#xff08;即GSH&#xff09;浓度的相对变化。通过流式细胞术分析荧光信号。 谷-胱-甘肽&#xff0c…

​DPDK 高效原因初探

Linux处理Packets主逻辑 系统接受数据包的过程 当网卡收到第一个包时候,通过DMA把这个包发送给接受队列(rx)系统通过中断的方式通知新数据包的到来,同时也需要把数据包传递给内核的buffer(每个包一个buffer,sk_buff struct).一个数据包到来会触发多次的中断&#xff0c;内核处…

.net-----语言集成查询LINQ

语言集成查询LINQ前言相关语言要素初始值设定项匿名类型相关语言要素Lambda表达式扩展方法LINQ的概念和基本操作集成语言查询LINQLINQ查询操作标准查询运算符数据排序数据筛选数据投影数据分组联接运算数据分区限定运算聚合运算集合运算生成运算元素操作串联运算相等运算数据类…

【新知实验室 基于WEB的实时音视频(TRTC)案例搭建】

文章目录1. 实时音视频&#xff08;TRTC&#xff09;1.1 实时音视频(TRTC)概述1.2 实时音视频(TRTC)功能集成1.2.1 含 UI 组件集成方案1.2.2 无 UI 组件集成方案1.3 实时音视频(TRTC)架构2. 使用体验2.1 注册腾讯云2.2 申请实时音视频(TRTC)应用2.3 下载SDK的Demo源码2.4 获取 …

前后端结合解决Excel海量公式计算的性能问题

背景 在数据密集的业务领域&#xff0c;尤其是金融&#xff0c;保险&#xff0c;税务等行业中&#xff0c;经常需要利用Excel模型&#xff0c;来对业务进行分析和处理。例如&#xff1a; 1.金融投资&#xff1a; 根据模型进行估值计算&#xff0c;并对投资风险进行评估&#x…