自动化无法定位的原因_Appium Android 自动化测试 -- 元素定位
自动化测试元素定位是难点之一,编写脚本时会经常卡在元素定位这里,有时一个元素能捣鼓一天,到最后还是定位不到。
Appium 定位方式和 selenium 一脉相承,selenium 中的定位方式Appium 中都支持,而 Appium 还增加了自己特定的方式用来定位原生的 Android 与 iOS 元素。
1、Appium 元素的定位方式
Appium 支持以下元素定位方式
ID,本机元素标识符。 Android 的 resource-id; iOS 的 NameNAME,1.4以上版本已经不支持该定位方式CLASS_NAME,Android, UIAutomator2 类的全名; IOS, 以XCUIElementType 开头的XCUI 元素全名。LINK_TEXT(没用),链接的完整文字PARTIAL_LINK_TEXT(没用),链接的部分文字TAG_NAME ,元素的结点名称CSS_SELECTOR,css 定位,检索 page source 的 xml 文档的有效 cssXPATH(不推荐),xpath 定位,检索 page source 的 xml 文档的有效 xpathACCESSIBILITY_ID,通过附加给定元素的辅助功能ID或标签定位元素,如 Android 的 content-desc属性, iOS 的 accessibility-id 属性。IMAGE (实验阶段,不推荐使用), 根据base64编码的图像文件定位元素CUSTOM (实验阶段,不推荐使用), 使用第三方插件定位元素ANDROID_UIAUTOMATOR, 使用 Android 的 UiAutomator Api 定位元素,特别是UiSelector类来定位元素。ANDROID_VIEWTAG, 通过Android元素视图定位元素IOS_UIAUTOMATION, 使用iOS 的 UIAutomation 库去定位元素,(iOS 9.3及以下版本)IOS_PREDICATE, 使用 iOS Predicate 定位元素(需要 iOS 10.0及更高版本)IOS_CLASS_CHAIN (不推荐), 仅支持iOS 的 XCTest 框架,不如 xpath
上面的定位方式一堆,很多种,其实大多数用不到,常用有 id,accessibility id,android uiautomator(ios uiautomationios predicate),xpath。
xpath iOS不推荐使用, 当前版本对 iOS 支持不友好,非常慢。
2、抓取元素
2.1 Android 抓取元素(uiautomatorviewer)
uiautomatorviewer 工具在SDK的安装目录下的tools文件夹下,
第一步,启动模拟器或连接手机开启调试模式
第二步,使用命令 uiautomatorviewer 打开 UI Automator Viewer,如图:
2.2 iOS 抓取元素
iOS 的UI自动化测试只能在Mac上运行,抓取元素使用Appium自带工具。
- Start Server 启动Appium
2. 点击搜索图标按钮
3. 输入App启动的Desired Capabilities,点击Start session 启动
注意:模拟器可以直接此启动,真机需要链接上电脑后启动,并指定真机的udid
4. 通过选取元素工具,选择需要定位的元素,元素的属性信息出现在右边
顶部工具栏按钮功能说明:
选取元素:选择视图区域元素,获取元素信息
滑动屏幕:在视图区域点击两次,通过两次的坐标,在模拟器中滑动屏幕
点击:在视图区域点击,模拟器中也触发相应的点击
返回上一级:相当于 Back
更新页面视图:当模拟器中页面与视图不一致时,用来更新视图
查找元素:能通过id,name,XPath, class name等查找元素。用来确认元素定位。
Selected Element 的信息
常用来定位元素的是accessibility id和name,无法使用其他元素定位方式的情况下才采用xpath
注意:使用xpath时,工具自动生成的xpath稳定性和可靠性不高,进行手写,不要使用//td[5] 这类的节点。
2.3 Mac 抓取Android元素
Mac 抓取Android可以使用uiautomatorviewer工具和appium,uiautomatorviewer 也是在SDK安装目录的tools目录下。
appium 与定位 iOS 一样,在Desired Capabilities中设置启动信息为Android的就可以,差别在于,Android必需先启动模拟器,它无法自动启动。
常用元素操作见:木头人:Appium 移动端自动化测试 -- 常用元素操作
自动化无法定位的原因_Appium Android 自动化测试 -- 元素定位相关推荐
- python语法元素测试_基于python全局设置id 自动化测试元素定位过程解析
背景: 在自动化化测试过程中,不方便准确获取页面的元素,或者在重构过程中方法修改造成元素层级改变,因此通过设置id准备定位. 一.python准备工作: 功能:用自动化的方式进行批量处理. 比如,你想 ...
- 【移动测试Android】元素定位|基本操作|手势操作
[移动测试Android]元素定位|一些基本操作 元素定位 元素定位工具 UIAutomatorView appium desktop inspector weditor 基本操作 基础api 输入文 ...
- 自动化测试元素定位的8种方法:
自动化测试元素定位的8种方法: 1.通过id属性定位: find_element_by_id() 复数形式: find_elements_by_id() 2.通过name属性定位: find_elem ...
- 不得不说--自动化测试元素定位与用例设计
关于自动化测试,经常被问到元素的定位 与 如何设计用例. 很多时间我也帮不了你解决实际的问题,只能从个人脚本谈谈如何看待这些问题. 不得不说之元素定位 虽然,本章写了十几篇文章来讲元素的定位与操作,对 ...
- python+appium自动化测试元素定位
关于app自动化测试,元素定位工具有三个: appium自带的Appium Inspector工具 Android ADT原生的工具 python版uiautomator2中的weditor 由于我常 ...
- appium python实例_Appium Python 常用元素定位方法测试小米计算器实例
常用的元素定位方法 Uiautomator 定位 image.png text属性的方法 #text driver.find_element_by_android_uiautomator('new U ...
- Appium 自动化测试元素定位工具使用
简介 前面环境基本都搭建好了,相关的知识也准备的差不多了,那么我们就开始下一步元素定位,元素定位首先需要知道使用哪些元素定位工具,本文讲解常见的元素定位工具uiautomatorviewer和 ...
- 自动化测试元素定位“最佳实践”
最近在翻阅cypress文档的时候发现一些关于自动化测试中元素定位的思考,觉得很有意思,这里跟大家分享一下. 核心概念 其实元素定义的核心概念很简单,一些元素总有自己独一无二的一些特点,比如我们每个人 ...
- android实现定位打卡,基于Android的移动定位课堂考勤系统设计与实现
董崇杰 摘 要: 为促进高职院校课堂考勤管理工作的规范化,提高课堂考勤管理水平,使用PHP语言开发了Web服务端的课堂考勤系统,结合移动定位技术开发了Android手机客户端.该系统已上线试运行,运行 ...
最新文章
- [老男孩笔记系列]-之linux定时任务crontab命令详解
- 【ObjectC—浅copy和深copy】
- JavaScript实用小技巧
- ASP.NET Core中为指定类添加WebApi服务功能
- JavaScript加密库Crypto-JS的使用
- caffe的python接口学习(3):训练模型(training)
- android虚拟机改变sim,逍遥安卓模拟器修改手机型号的方法
- 计算机表格怎么算加减,excel表格数据的加减-excel表格怎么自动计算加减
- 获取本月最后一天23:59:59和次月的最后一天23:59:59次月第一天0点的时间戳
- 2018计算机cpu调研,2018最新电脑处理器天梯图,进来了解下
- 那些年做过的动态图表-实用漂亮的Excel动态图表
- Vue Eslint语法检测工具
- jpg转bmp(使用libjpeg)
- html聊天室ui,震惊!这个H5居然是在线聊天室!(内附完整教程)
- SendMail.java
- 基于Android开发的在线考试系统(附带源码)
- 快速刷通PWN——序
- ssh 卡在 SSH2_MSG_SERVICE_ACCEPT received
- zabbix(七)结合qq邮箱和第三方应用监控
- 计算机基本绘图知识实验报告,计算机绘图综合实验报告封面2012
热门文章
- 有关Silverlight TabControl组件的研究——Silverlight学习笔记(5)
- Adsutil.vbs 在脚本攻击中的妙用
- 【转载】基于rasa的对话系统搭建(上)
- 纵览神经架构搜索方法
- 使用接口更改已装箱的值类型中的字段
- android 评分条 RatingBar 使用及自定义
- MAC OS 如何安装命令行工具:Command Line Tools
- Syzmlw 让子弹飞迅雷下载
- Compiler__visual_studio_2010_pro 激活码
- 大数据之-Hadoop完全分布式_集群的启动和停止方式总结---大数据之hadoop工作笔记0039