在appium定位方式中可以通过by_android_uiautomator方法定位元素。
基本语法:driver.find_element_by_android_uiautomator("xx")
1.通过className来定位语法:
driver.find_element_by_android_uiautomator(
new UiSelector().className("class名称"))
页面上的class属性一般不唯一,多半用在复数定位时候。此时定位相应下标
driver.find_elements_by_android_uiautomator("new UiSelector().className(‘android.widget.ImageView’)")[2].click()
2.通过text文本定位语法 :
new UiSelector().text("text文本")
driver.find_element_by_android_uiautomator("new UiSelector().text(‘用户名’)").click()
2.1.如果文本比较长,可以用textContains模糊匹配,如果存在多个相同的控件,只会匹配到第一个。
new UiSelector().textContains("包含text文本")
driver.find_element_by_android_uiautomator("new UiSelector().textContains(‘用’)").click()
同样可以用textStartsWith是以某个文本开头来匹配
new UiSelector().textStartsWith("以text文本开头")
3.通过resourceId的方法
new UiSelector().resourceId("id")
4.description 也是用contenet-des属性定位(该属性可能用的地方并不多,但是这也是一种定位的方式)
new UiSelector().description("contenet-des属性")
5.组合定位
1).id与text属性组合
#id+text
id_text = 'resourceId("com.baidu.yuedu:id/webbooktitle").text("互联网")' driver.find_element_by_android_uiautomator(id_text).click()
2).class与text属性组合
#class+text
class_text = 'className("android.widget.TextView").text("互联网")' driver.find_element_by_android_uiautomator(class_text).click()
6.关系定位
1).父子定位childSelector
有时候不能直接定位某个元素,但是它的父元素很好定位,这时候就先定位父元素,通过父元素找子节点
#父子关系
childSelector son = 'resourceId("com.baidu.yuedu:id/rl_tabs").childSelector(text("互联网"))' driver.find_element_by_android_uiautomator(son).click()
2).兄弟定位fromParent
有时候父元素不好定位,但是跟他相邻的兄弟元素很好定位,这时候就可以通过兄弟元素,找到同一父级元素下的子元素(fromParent方式定位如果兄弟元素是第一个元素,则是它自己;如果是其他元素,则是定位的它这个元素的上一个子元素!!)
#兄弟关系
fromParent brother = 'resourceId("com.baidu.yuedu:id/lefttitle").fromParent(text("互联网"))' driver.find_element_by_android_uiautomator(brother).click()

android 获取元素的下标_Appium中定位方式by_android_uiautomator相关推荐

  1. jquery获取元素在文档中的位置信息以及滚动条位置(转)

    jquery获取元素在文档中的位置信息以及滚动条位置 http://blog.csdn.net/qq_34095777/article/details/78750886     原文链接 原创 201 ...

  2. android 获取控件在屏幕中的坐标

    今天,简单讲讲android如何获取控件在屏幕中的坐标. 这个其实也很简单,但是昨天做一个功能时,需要功能控件的坐标做一些逻辑操作时,居然不知道怎么做.所以在网上查找了资料后,解决了这个问题.这里记录 ...

  3. android获取存储设备根目录,浅谈android获取存储目录(路径)的几种方式和注意事项...

    通常, 我们创建文件/目录, 或者存储图片什么的, 我们都需要拿到手机的存储路径, 现在我们就来看一下获取手机存储路径的几种方式(作为工具类方法调用即可): 第一种: 获取 /storage/emul ...

  4. javascript 获取元素在父节点中的下标

    jquery中直接通过$(this).index()即可得到当前元素的下标.但原生JavaScript并没有提供类似的属性或方法,这时候可以调用数组中的indexOf方法直接计算 <ul> ...

  5. java读取指定位置arraylist,获取元素在Java ArrayList中的位置

    可以使用方法java.util.ArrayList.indexOf()获得ArrayList中元素的位置.此方法返回指定元素首次出现的索引.如果该元素在ArrayList中不可用,则此方法返回-1. ...

  6. android获取元素路径,Appium元素定位(name、classname、相对路径、绝对路径\、list)...

    元素通过name元素定位 Appium的name元素定位对应的是Android上的text字段,语法: driver.find_element_by_name('安检测速').click() 缺点:部 ...

  7. android 获取资源文件 r.drawable中的图片转换为drawable、bitmap

    1.R-Drawable 1 Resources resources = mContext.getResources(); 2 Drawable drawable = resources.getDra ...

  8. Android获取设备序列号的方法与调用方式

    记录一下安卓获取设备序列号的方法,以及调用方式 方法: /*** * 使用反射调用系统隐藏方法get(),获取系统相关属性配置* @param key 属性名称* @return*/ static S ...

  9. Android 获取手机IP地址的两种方式及常见问题

    1.使用WIFI 添加权限 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE">& ...

最新文章

  1. mongodb主从复制及副本集的部署
  2. 标准模板库之容器-《C++标准库(第二版)》读书笔记
  3. java oracle 字符_Oracle转义字符
  4. 计算机vb操作题评分细则,上机考试的试题及评分标准.doc
  5. Flume1.5.0的安装、部署、简单应用(含伪分布式、与hadoop2.2.0、hbase0.96的案例)
  6. 抽象编程语言(APL)是什么?
  7. discuz mysql 编码_Discuz!X 下如何使用 Tools 来转换数据库编码
  8. UVa1368 - DNA Consensus String
  9. 20200121每日一句
  10. SecureCRT Ver 8.1.4 整合汉化绿色版一体包
  11. LinkList L 与LinkList L(LNode* L , LNode* L)的区别
  12. 李小铭计算机专业应聘书作文,应聘申请书英语作文
  13. Java使用IP代理突破IP限制进行投票
  14. Excel中导入Unix格式时间戳小技巧
  15. 生活,令人满意的生活,丰富的生活包括了起起落落,包括了痛苦和再次振作,包括了失败和再次奋
  16. Qt5Core上的CMake错误
  17. 计算机名称缩写大全集,求《魔兽世界》副本名称常用缩写大全?
  18. nmbd samba中文
  19. 技校可以学计算机平面设计吗,计算机平面设计免费试学服务为先_孙进技校
  20. golang开发:WaitGroup Mutex

热门文章

  1. Material delta download的deletion处理原理
  2. Document builder customizing
  3. 如何用SAP ABAP编程语言实现一个简单的区块链模型
  4. 给硬件工程师介绍SAP Cloud for Customer
  5. 如何在ubuntu上安装virtualbox的driver module vboxdrv
  6. html 显示状态条,怎么控制html5 video 控制条显示和隐藏时间
  7. 无极绳连续牵引绞车_可视化无极绳绞车保护控制装置
  8. kafka reassign 限速_RabbitMQ 七战 Kafka,差异立现!
  9. 帧大小超过交换机mtu_tcpip – UDP中的MTU如何为65535,但以太网不允许超过1500字节的帧大小...
  10. sqlmap安装_黑客神器系列篇章之“sqlmapquot;