百度多次未找到遍历一个uiautomator2中子元素的方法,通过自己查看实现代码,找到了方法,分享出来供大家参考。

当你获取了页面某个元素之后 elements = d(’//*[@clickable=“true”]’).all()

返回的是一个list,其中是<uiautomator2.xpath.XMLElement>类型的变量。

可以通过以下方式获取它所有子类的信息。

for ele in elements:children = ele.elem.getchildren()

注意,其中的ele.elem是<lxml.etree._Element>类型的变量。

这种变量才能获取到对应控件元素的属性,比如text、resourceID等等。方法是 ele.elem.get(“text”),其中的key可以通过 ele.elem.keys()查看,如下

[‘index’, ‘text’, ‘resource-id’, ‘package’, ‘content-desc’, ‘checkable’, ‘checked’, ‘clickable’, ‘enabled’, ‘focusable’, ‘focused’, ‘scrollable’, ‘long-clickable’, ‘password’, ‘selected’, ‘visible-to-user’, ‘bounds’]

关于xpath定位用法

https://github.com/openatx/uiautomator2#xpath
xpath是指通过路径定位

使用方法
self.d.xpath(//).click()
详细用法
所有元素
//
resource-id包含login字符
//[contains(@resource-id, ‘login’)]
按钮包含账号1或帐号2
//android.widget.Button[contains(@text, ‘账号1’) or contains(@text, ‘帐号2’)]
所有ImageView中的第二个
(//android.widget.ImageView)[2]
所有ImageView中的最后一个
(//android.widget.ImageView)[last()]
className包含ImageView
//
[contains(name(), “ImageView”)]

【总结】

综上,你若想遍历某个元素的所有子元素

for ele in elements:children = ele.elem.getchildren()for child in children:print(child.get("text")grandchildren = child.getchildren() # 注意和 ele.elem.children的区别....#后续可以自行写递归函数循环

uiautomator2遍历子元素相关推荐

  1. jq遍历子元素_jquery:::选择器/遍历/获取所有的子元素、兄弟元素

    jquery是一个基于javascript的轻量级工具包,是基于javascript的函数库,它使得javascript开发更加高效快捷. 1,jquery的选择器分为: 基本选择器(又分为id选择器 ...

  2. jq遍历子元素_leetcode第196周赛第三题统计全 1 子矩形

    leetcode1504. 统计全 1 子矩形 给你一个只包含 0 和 1 的 rows * columns 矩阵 mat ,请你返回有多少个 子矩形 的元素全部都是 1 . 示例 1: 输入:mat ...

  3. 遍历DOM元素的children属性遇到的坑

    问题的引出 关于DOM元素的children属性,以前我只在意它和childNodes属性的区别:即children属性只会返回子元素节点集合,而childNodes返回的就不止元素节点,还有文本节点 ...

  4. 爬取的网页,获取子元素内容的方法

    今天练习网络爬虫,爬取豆瓣电影Top 250,其中每部电影有排名.评分.电影名.导演等信息,分布在不同的标签下面,而每部电影的所有信息都在一个大的<div>标签下,因此需要获取子元素的内容 ...

  5. JS 获取元素下指定的子元素

    //获得li标签下的子元素divfunction GetLiChildDIV(liObj) {//获取li下的所有子元素var children = liObj.children;//遍历子元素,当元 ...

  6. jquery 遍历父元素、子元素、兄弟元素

    寻找父元素 1. parent()方法,只返回被选元素的直接父元素,只遍历到上一级的父元素,返回的是一个元素. 2. parents()方法,返回被选元素的所有父元素,一直向上遍历,直到文档的根元素为 ...

  7. html标签的下一级遍历,HTML遍历某个元素下的子元素

    通过document.getElementsByClassName("s1");或document.getElementsByName("s1")返回的是一个集 ...

  8. 基于Xml 的IOC 容器-载入<list>的子元素

    在BeanDefinitionParserDelegate 类中的parseListElement()方法就是具体实现解析<property>元素中的<list>集合子元素,源 ...

  9. jquery笔记一:下载安装、语法、选择器、遍历选择元素的方法、jQuery动画

    目前 jQuery 兼容于所有主流浏览器, 包括 IE 6!开发时常用 jquery.js,上线用 jquery.min.js. jq插件 目前jQuery有三个大版本: (1)1.x.x: 兼容ie ...

  10. java 递归遍历对象所有属性_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...

    xml中加入了几条,为了方便查询时作为示例. 话不多说见代码注释: DTD文件:SwordTypeDefinition.dtd XML文件:SwordLib.xml SwordLibrary SYST ...

最新文章

  1. DCCI:Web3.0时代 微博未来有望突破4.6亿
  2. 力扣——所有可能的满二叉树
  3. 2.Knockout.Js(监控属性Observables)
  4. 30行代码AC_HDU-5933 ArcSoft‘s Office Rearrangement(模拟+题解报告)
  5. 综合缴费系统|综合缴费|话费充值
  6. 提升对前端的认知,不得不了解Web API的DOM和BOM
  7. 2014-7-29-阿里电面-第一轮
  8. [Winodows图形编程]初识双缓冲技术
  9. java对mysql的简单操作——增删改查的总结
  10. 2015.03.20使命
  11. 量子计算机 模拟,量子计算机首次模拟实现“时光倒流”
  12. img文件制作linux启动u盘,用syslinux制作简单U盘启动盘教程
  13. 深蓝学院 《多传感器融合定位》 第2章作业
  14. 为什么需要public static void main(String[] agrs)这个方法
  15. html5玻璃下雨,下雨天外后视镜总是沾满水珠 6个妙招帮你解决这个难题
  16. AMiner论文推荐:
  17. 基于stm32的室内环境监测系统 9746字
  18. 基于ZigBee的放射源监控系统研究
  19. 手工删除Windows桌面搜索的方法
  20. SpringBoot 最简单的使用异步线程案例 @Async

热门文章

  1. 抑郁症,恐惧,压力和肠道微生物群脱不开的关系
  2. Python案例 计算 S=1-3+5-7+9-11+…+n,计算n=100001或n=10000001时的和。
  3. MPMLink 中 通过 零件号+MBOM版本,查询正确的EBOM版本(相当于对等部件功能)
  4. c++ atuo_ptr 的实现原理
  5. 手机备份True NAS(FreeNAS)+​FolderSync​爬坑
  6. camera理论基础和工作原理
  7. c++中string 各种函数的函数用法
  8. 2021-09-12
  9. @POST和GET的区别?
  10. 海康web3.0使用记录