自动化测试元素定位是难点之一,编写脚本时会经常卡在元素定位这里,有时一个元素能捣鼓一天,到最后还是定位不到。

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自带工具。

  1. 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 自动化测试 -- 元素定位相关推荐

  1. python语法元素测试_基于python全局设置id 自动化测试元素定位过程解析

    背景: 在自动化化测试过程中,不方便准确获取页面的元素,或者在重构过程中方法修改造成元素层级改变,因此通过设置id准备定位. 一.python准备工作: 功能:用自动化的方式进行批量处理. 比如,你想 ...

  2. 【移动测试Android】元素定位|基本操作|手势操作

    [移动测试Android]元素定位|一些基本操作 元素定位 元素定位工具 UIAutomatorView appium desktop inspector weditor 基本操作 基础api 输入文 ...

  3. 自动化测试元素定位的8种方法:

    自动化测试元素定位的8种方法: 1.通过id属性定位: find_element_by_id() 复数形式: find_elements_by_id() 2.通过name属性定位: find_elem ...

  4. 不得不说--自动化测试元素定位与用例设计

    关于自动化测试,经常被问到元素的定位 与 如何设计用例. 很多时间我也帮不了你解决实际的问题,只能从个人脚本谈谈如何看待这些问题. 不得不说之元素定位 虽然,本章写了十几篇文章来讲元素的定位与操作,对 ...

  5. python+appium自动化测试元素定位

    关于app自动化测试,元素定位工具有三个: appium自带的Appium Inspector工具 Android ADT原生的工具 python版uiautomator2中的weditor 由于我常 ...

  6. appium python实例_Appium Python 常用元素定位方法测试小米计算器实例

    常用的元素定位方法 Uiautomator 定位 image.png text属性的方法 #text driver.find_element_by_android_uiautomator('new U ...

  7. Appium 自动化测试元素定位工具使用

    简介     前面环境基本都搭建好了,相关的知识也准备的差不多了,那么我们就开始下一步元素定位,元素定位首先需要知道使用哪些元素定位工具,本文讲解常见的元素定位工具uiautomatorviewer和 ...

  8. 自动化测试元素定位“最佳实践”

    最近在翻阅cypress文档的时候发现一些关于自动化测试中元素定位的思考,觉得很有意思,这里跟大家分享一下. 核心概念 其实元素定义的核心概念很简单,一些元素总有自己独一无二的一些特点,比如我们每个人 ...

  9. android实现定位打卡,基于Android的移动定位课堂考勤系统设计与实现

    董崇杰 摘 要: 为促进高职院校课堂考勤管理工作的规范化,提高课堂考勤管理水平,使用PHP语言开发了Web服务端的课堂考勤系统,结合移动定位技术开发了Android手机客户端.该系统已上线试运行,运行 ...

最新文章

  1. [老男孩笔记系列]-之linux定时任务crontab命令详解
  2. 【ObjectC—浅copy和深copy】
  3. JavaScript实用小技巧
  4. ASP.NET Core中为指定类添加WebApi服务功能
  5. JavaScript加密库Crypto-JS的使用
  6. caffe的python接口学习(3):训练模型(training)
  7. android虚拟机改变sim,逍遥安卓模拟器修改手机型号的方法
  8. 计算机表格怎么算加减,excel表格数据的加减-excel表格怎么自动计算加减
  9. 获取本月最后一天23:59:59和次月的最后一天23:59:59次月第一天0点的时间戳
  10. 2018计算机cpu调研,2018最新电脑处理器天梯图,进来了解下
  11. 那些年做过的动态图表-实用漂亮的Excel动态图表
  12. Vue Eslint语法检测工具
  13. jpg转bmp(使用libjpeg)
  14. html聊天室ui,震惊!这个H5居然是在线聊天室!(内附完整教程)
  15. SendMail.java
  16. 基于Android开发的在线考试系统(附带源码)
  17. 快速刷通PWN——序
  18. ssh 卡在 SSH2_MSG_SERVICE_ACCEPT received
  19. zabbix(七)结合qq邮箱和第三方应用监控
  20. 计算机基本绘图知识实验报告,计算机绘图综合实验报告封面2012

热门文章

  1. 有关Silverlight TabControl组件的研究——Silverlight学习笔记(5)
  2. Adsutil.vbs 在脚本攻击中的妙用
  3. 【转载】基于rasa的对话系统搭建(上)
  4. 纵览神经架构搜索方法
  5. 使用接口更改已装箱的值类型中的字段
  6. android 评分条 RatingBar 使用及自定义
  7. MAC OS 如何安装命令行工具:Command Line Tools
  8. Syzmlw 让子弹飞迅雷下载
  9. Compiler__visual_studio_2010_pro 激活码
  10. 大数据之-Hadoop完全分布式_集群的启动和停止方式总结---大数据之hadoop工作笔记0039