之前对appium如何使用进行了介绍,这里将对如何查找app元素以及如何定位app元素进行讲解
**

查找元素

在做app做自动化的时候,查找元素是一件比较麻烦的事情,如何进行app元素查找呢,这里将介绍两种方法:

1、安卓sdk自带的uiautomator viewer工具工具路径: tools ->bin ->uiautomatorviewer.bat
2、appium最新版使用appium客户端,在客户端中获取app元素,可以获取元素的路径、classname、text内容等信息

定位元素

1、根据xpyth:

(1)命令格式:find_element_by_xpath(“//android.widget.TextView[10]”)
(2)注:xpath下标从1开始,在python中是从0开始的,使用完整的classname;

2、根据ID:

(1)命令格式: driver.find_element_id('xxxx')

3、根据class name:

(1)命令格式:driver.find_element_by_class_name("android.widget.TextView")
(2)局限: class属性决定了界面元素的类型如果我们要查找的是某种类型的界面元素,而且这种类型的界面元素在当前界面中只有一个可以使用这个方法

4、 根据Accessibility Id:

(1)命令格式: driver.find_element_by_accessibility_id('unique name')
(2)局限: content-desc属性是用来描述该元素的作用, 如果要查询的界面元素的content-desc属性,在当前页面中唯一就用它(但可能存在没有该元素的情况)

查找命令

1、选择元素的代码与selenium基本相同,使用find_element_by_XXXX来进行查找,但是需要注意:(1)find_element_by_xxx  符合条件的第一个元素,找不到抛出异常(2)find_elements_by_xxx  符合条件的所有元素的列表,找不到返回空列表【多了一个s】(3)通过webDriver 查找范围是整个界面树形结构(4)通过webelement 查找范围是该节点的子节点

踩过的坑

  1、定位元素时遇到过的坑: 经常报EOF错误,几种解决办法- 关掉appium server ,然后再次打开uiautomatorviewer.bat- 电脑上不能有手机助手,有的话都关掉- 重启手机,重新连接  adb devices- 删除测试包,重新下载,重启uiautomatorviewer

Inspetor定位

(1)因为用UIAutomator viewer工具不能实时定位元素,可以在appium server 界面上点击放大镜,填写相应的name  value,然后start session一下,就可以实现图形与元素实时定位。当然Inspetor还可以验证xpath表达式。
(2)通过Inspactor中的Attach to Session就可以知道是什么设备。
(3)如何查看session id:可以在代码中加入  print(driver.session_id)

获取元素属性

前提:已经获取到该元素,将该元素赋值给 a
1、获取text方法

(1)print(a.text)
(2)print(a.get_attribute("text"))  【常用第一种,写法较为简单】

2、获取resource-id值方法

(1)print(a.get_attribute("resourceId"))

3、获取classname值方法

(1)print(a.get_attribute("className"))
(2)print(a.tag_name)

4、获取content-desc值方法

(1)print(a.get_attribute("name"))
【注:需要说明一下,当那个content-desc的值为空的时候,这个方法获取的是元素text的值,只有当content-desc不为空才返回对应的值。】

5、获取check值方法

(1)print(a.get_attribute("checked"))
【注:元素里只要属性值是布尔型的,即false or true。都可以通过这个方法来获取】

6、获取元素坐标

(1)print(a.size)
(2)print(a.location)

Appium元素定位方法相关推荐

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

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

  2. App控件定位:Android 控件介绍及元素定位方法

    本文将分享Android相关基础知识和Android APP控件定位工具的使用方法. 目录 Android基础知识 Android布局 Android四大组件 1.activity 2.Service ...

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

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

  4. 4、通过uiautomatorviewer实现appium元素定位

    熟悉selenium自动化的小伙伴应该知道WebDriver 提供了八种元素定位方法: id name class name tag name link text partial link text ...

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

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

  6. Selenium常用的8大元素定位方法

    1.元素定位方法的分类(调用方式): 直接调用型(推荐方式) driver.find_element_by_xxx(value) 使用By类型(需要导入By) from selenium.webdri ...

  7. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  8. selenium自动化测试——常见的八种元素定位方法

    selenium常用的八种元素定位方法 1.通过 id 定位:find_element_by_id() 2.通过 name 定位:find_element_by_name() 3.通过 tag 定位: ...

  9. python+selenium笔记(一):元素定位方法

    一.环境准备: 1.浏览器选择:Firefox 2.安装插件:Firebug和FirePath(设置>附加组件>搜索:输入插件名称>下载安装后重启浏览器) 3.安装完成后,页面右上角 ...

最新文章

  1. 简析正则表达式的使用
  2. UA MATH571A 一元线性回归II 统计推断2
  3. Linux文件权限基本配置
  4. java 过滤文件名_Java FileNameFilter过滤文件名
  5. HDU - 4612 Warm up(边双缩点+树的直径)
  6. golang func 入参为func_Golang函数常见用法
  7. ZOJ.3551.Bloodsucker(期望DP)
  8. 约数研究问题的算法优化和推导证明(洛谷P1403题题解,Java语言描述,含Latex公式编辑知识)
  9. 图:广州南洋理工职业学院管理系“相聚南洋”朗诵(演讲)比赛尘埃落定
  10. java内嵌浏览器的几种方式
  11. C++实现人机对战围棋(使用Leela Zero权重)-自动提子
  12. java xps文档_使用Java 将PPT转换为PDF、XPS等格式
  13. struts1和struts2的区别
  14. 阿里云天池Python训练营-打卡Task3
  15. 周易六十四卦——水火既济卦
  16. Linux 添加开机启动项的三种方法
  17. win10定时关机c语言,win10定时关机怎么设置,win10设置定时关机设置方法-电脑怎么定时开关机...
  18. 灵汐科技类脑芯片KA200入选2021年世界互联网领先科技成果“提名项目”
  19. 捕获海康威视IPCamera图像,转成OpenCV能够处理的图像(二)
  20. 速算C语言程序设计,C语言速算24数据结构课程设计最终版(备份存档)

热门文章

  1. MarkDown简介(深度解析MarkDown用法)
  2. 敏捷项目管理21天学习计划--Scrum
  3. 世人皆说屠龙术,我来谈谈易筋经
  4. 《机器学习》赵卫东学习笔记 第13章推荐系统(课后习题及答案)
  5. 部署Office Web Apps Server 实现office在线编辑预览,office-online
  6. MyBioSource丨艾美捷抗eIF4E抗体
  7. 关于MAC下pymysql连接mysql数据库报错2003的问题解决方法
  8. CSS 使图片看起来有立体感样式
  9. 视觉优化-立体图片实现
  10. easybuy项目总结