uiautomator2-Xpath

  • 写在前面
    Java uiautomator中默认是不支持xpath的,所以这里属于扩展的功能,速度不是很快。
  • 🌰,其中一个节点的内容
<android.widget.TextView
  index="2"
  text="05:19"
  resource-id="com.netease.cloudmusic:id/qf"
  package="com.netease.cloudmusic"
  content-desc=""
  checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false"
  scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true"
  bounds="[957,1602][1020,1636]" />

Tip:有些属性的名字有修改,需要注意
· description -> content-desc
· resourceId -> resource-id

  • 常见用法
# 等待元素10s
d.xpath("//android.widget.TextView").wait(10.0)

# 查找元素并点击
d.xpath("//*[@content-desc='分享']")。click()

# 检查元素是否存在
if d.xpath("//android.widget.TextView[contains(@text, 'Se')]").exists:
	print("exists")

# 获取所有text-view的text、attrib和center pint 
for elem in d.xpath("//android.widget.TextView").all():
	print("Text:", elem.text)
	# Dictionary eg: 
    # {'index': '1', 'text': '999+', 'resource-id': 'com.netease.cloudmusic:id/qb', 'package': 'com.netease.cloudmusic', 'content-desc': '', 'checkable': 'false', 'checked': 'false', 'clickable': 'false', 'enabled': 'true', 'focusable': 'false', 'focused': 'false','scrollable': 'false', 'long-clickable': 'false', 'password': 'false', 'selected': 'false', 'visible-to-user': 'true', 'bounds': '[661,1444][718,1478]'}
	print("Attrib:", elem.attrib)
	# Coordinate eg: (100, 200)
	print("Position:", elem.center)

其他Xpath操作

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值