使用uiautomatorviewer.bat工具来找到属性定位元素,在SDK的tools目录下找到该工具,双击打开。左边框内展示app的界面元素,右上角框内展示元素的层级关系,右下角框内展示元素的属性。

1.使用id定位元素

resource-id代表id属性,使用方法:

driver.findElement(By.id("com.android.calculator2:id/digit5")).click();//点击5

2.使用name定位元素

text代表name属性,使用方法:

driver.findElement(By.name("5")).click();

3.使用class定位元素

class就是class属性,class属性定位出元素有可能有很多,定位到某一个元素需要其他条件,使用方法:

@Testpublic void testcase3(){List<WebElement> list = driver.findElements(By.className("android.widget.Button"));for (WebElement elem:list){System.out.println(elem);}}

4.使用xpath定位元素

需要注意:Appium中属性class的代表标签的名字,下标是从1开始的。

元素的属性具有唯一性时:

driver.findElement(By.xpath("//android.widget.TextView[contains(@resource-id,'com.android.mms:id/action_compose_new')]")).click();
driver.findElement(By.xpath("//android.widget.TextView[@text='New message']")).click();

xpath定位中的标签之间的父子关系和兄弟关系:

图中框1中的三个标签是兄弟关系,框2中的两个标签为父子关系。

兄弟关系:

如果想定位最后一个LinearLayout,可以使用preceding-sibling::表示定位当前标签的哥哥标签,following-sibling::表示定位当前标签的弟弟标签,方法如下:

        driver.findElement(By.xpath("//android.widget.FrameLayout[1]/following-sibling::android.widget.FrameLayout[2]")).click();

通过following-sibling找到第一个标签LinearLayout的第二个弟弟,也就是定位第三个LinearLayout标签。

同理定位第一个标签,通过找到第三个标签的第二个哥哥,就是第一个LinearLayout标签。

driver.findElement(By.xpath("//android.widget.FrameLayout[3]/preceding-sibling::android.widget.FrameLayout[2]")).click();

上面的两种情况可能不适合使用preceding-sibling::和following-sibling::,只是用来举例它们的使用方法。

父子关系:

如果想定位TextView标签,可以使用parent::或者..表示父亲标签,定位框2中的TextView标签。

        driver.findElement(By.xpath("//android.widget.FrameLayout[2]/parent::android.view.View/android.widget.FrameLayout[3]/android.widget.TextView")).click();

通过parent::找到第二个LinearLayout的父标签View,父标签的第三个子标签LinearLayout的第一个子标签就是TextView标签。

5.Accessibility ID定位,Appium的扩展方法

找到元素的content-desc属性来定位。

        driver.findElement(By.name("7")).click();driver.findElementByAccessibilityId("divide").click();driver.findElement(By.name("2")).click();driver.findElementByAccessibilityId("equals").click();

6.使用AndroidAutomator定位,Appium的扩展方法

description就是content-desc属性。

        driver.findElementByAndroidUIAutomator("new UiSelector().text(\"9\")").click();driver.findElementByAndroidUIAutomator("new UiSelector().description(\"plus\")").click();driver.findElementByAndroidUIAutomator("new UiSelector().resourceId(\"com.android.calculator2:id/digit6\")").click();driver.findElementByAndroidUIAutomator("new UiSelector().description(\"equals\")").click();

参考博客:https://testerhome.com/topics/7129

https://www.cnblogs.com/testway/p/6225415.html

http://www.testclass.net/appium/appium-base-find-element/#

Appium的常用定位方法相关推荐

  1. 经颅磁刺激常用定位方法

    关注"心仪脑"查看更多脑科学知识的分享 关键词:经颅磁.TMS 在之前的两期经颅磁推文中,我们向大家介绍了经颅磁的基本原理与常见的刺激方法.不同的疾病所关联的脑区不同,并且具有不同 ...

  2. 测试工具基础------Selenium常用定位方法

    如果想要做自动化测试的话,还是要不断的学习,对于Selenium确实是非常强大,可以使用代码来控制浏览器,做一些类似功能测试的功能 常用的事件有 button.click() #点击 driver.g ...

  3. selenium 自动化测试工具(二)常用定位方式

    注册A的页面 <!DOCTYPE html> <html lang="zh-cn"> <head><meta charset=" ...

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

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

  5. Python Appium 元素定位方法简单介绍

    Python  Appium  元素定位 常用的八种定位方法(与selenium通用) id定位 name定位 Xpath定位 如下图,使用 uiautomatorviewer.bat 获取页面元素 ...

  6. Android app UI自动化测试 常用的元素定位方法

    本文简要介绍了移动端Android APP进行UI自动化测试时,常用到的元素定位方法 目录 前言 一.通过resource-id定位 二.通过class name定位 三.通过accessibilit ...

  7. selenium自动化常用元素定位方法

    一.选择界面元素 根据元素的特征选择:ID,Name,Class,TagName,link_text 根据元素的特征和关系:css,xpath 二.如何选择界面元素 1.存在ID属性的元素,可通过 i ...

  8. appium + python 常用的xpath定位

    转载地址:https://www.cnblogs.com/yoyoketang/p/9174749.html 基本属性定位 以淘宝app为例,定位左上角扫一扫按钮 1.可以通过text文本定位到 // ...

  9. 手机元素定位方法uiautomatorviewer Appium

    方法一:使用adb自带工具软件uiautomatorviewer 1.文件路径:F:\java\app\sdk\tools\bin\uiautomatorviewer.bat 2.双击打开:出现以下界 ...

最新文章

  1. 2021-03-07 Nussbaum函数
  2. 蒟蒻浅谈树链剖分之一——两个dfs操作
  3. redis 本机链接服务端命令
  4. 【Lucene】Lucene的使用和优化
  5. SOA的缺陷及其与微服务的关系
  6. Dell PowerEdge R740xd可以做什么?
  7. Huawei said, “Let every meeting room or coffee shop
  8. 三维重建/SLAM笔记_最佳学习路线/攻略
  9. Win7系统中unity web player是什么程序
  10. 批量给多个 Excel 工作簿文件添加文字水印或图片水印
  11. ipa文件怎么安装到iPhone iPhone怎么安装ipa
  12. 怎么解决win10以太网无有效ip
  13. 今日头条号如何过原创
  14. 50个最有价值的数据可视化图表(推荐收藏)
  15. scala集合算子大全及分类汇总——倾心整理
  16. Error unpacking rpm package initscripts解决方案
  17. 2022年安全员-B证考试题及安全员-B证证考试
  18. 阿里巴巴内部:2022年全技术栈PPT分享(架构篇+算法篇+大数据)
  19. postgresql 表文件介绍
  20. 邮箱开启授权码(配置邮件客户端)

热门文章

  1. 去哪儿网机票搜索系统的高并发架构设计(要点节选)
  2. 【网络工程师必备干货】Smart Link可靠性技术详解
  3. Meta 标签与搜索引擎优化
  4. MATLAB水母搜索算法求解超市物流配送选址问题代码实例
  5. 测试用例: 电话号码
  6. Java实现5种负载均衡算法
  7. GDB苹果网页一键打包工具(IOS,IPA,苹果应用网页打包,WINDOWS平台)
  8. ModbusRTU的几种常用功能码介绍及使用
  9. Fn+F12查看response
  10. 基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机