xiaocong的uiautomator有时候找不到界面元素的问题和解决

使用xiaocong的uiautomator进行Android自动化测试时遇到元素找不到的问题。通过研究发现,问题可能与setCompressedLayoutHeirarchy方法有关。该方法在压缩模式下会移除一些UIAutomator认为不必要的布局节点。通过调用dump方法并设置compressed=False,可以避免元素丢失,使它们在测试中可见并可交互。在测试前后加入此步骤,能有效解决找不到界面元素的困扰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

最近一直在用xiaocong的uiautomator做android的自动化测试,这是一个python对android uiautomator的包装,非常好用。

不过最近经常出现一个问题,界面上明明有这个元素,但是xiaocong的uiautomator却无法发现,无法点击。

解决

经过一番折腾,我猜测解决问题的核心大概在于setCompressedLayoutHeirarchy方法。

setCompressedLayoutHeirarchy是android uiautomator的一个方法,在官网的介绍中这个方法:

public void setCompressedLayoutHeirarchy (boolean compressed)

Enables or disables layout hierarchy compression. If compression is enabled, the layout hierarchy derived from the Acessibility framework will only contain nodes that are important for uiautomator testing. Any unnecessary surrounding layout nodes that make viewing and searching the hierarchy inefficient are removed.


Parameters
compressed  true to enable compression; else, false to disable

大意是说如果启用压缩,界面层只会返回对UIAutomator测试重要的元素。Any unnecessary surrounding layout nodes that make viewing and searching the hierarchy inefficient are removed.

但是问题就是,有时候代码判定无用的元素,实际上

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值