问题
最近一直在用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 hie