Android自动化测试中AccessibilityService获取控件信息(3)

         刚刚研究Uiautomator测试的时候偶然间发现,它也是获得accessibilityNodeInfo对象的,而且它获得的对象是当前窗口的对象,不是前一个画面,这就让我很疑惑啦。既然别人都可以获得当前画面,为啥AccessibilityService本身会获取不到了?一定是我哪方面理解的有问题。所以我又折返回来继续看AccessibilityService,果然是我的错!

        我之前写程序的时候,只响应了一个click事件,可能它会有数据的堵塞造成的信息答应不畅的可能性,因为我反复点击的时候,有时会出现正确,但是有时候又不正确。这就是偶现事件么?当然不是,我索性把所有的事件全部开启,我们能检测所有的事件。

    android:accessibilityEventTypes="typeAllMask"

        我是从设置里的网络->我的设备。我们看输出:

Android自动化测试中AccessibilityService获取控件信息(3)_第1张图片Android自动化测试中AccessibilityService获取控件信息(3)_第2张图片


       log输出了所有的响应事件答应的结果,对比如下:

Android自动化测试中AccessibilityService获取控件信息(3)_第3张图片                         Android自动化测试中AccessibilityService获取控件信息(3)_第4张图片

        通过对比可以看出,即使是同一时间的事件,不同的响应,得到不同的画面属性。通过这些,充分说明之前是由于我监听事件的错误,造成的结果不正确,其实他是可以得到当前画面的。Over,既然这样,那么我们就能达到我们的目标啦。

       (果然是偏门啊,没人发现错误!!)

 

你可能感兴趣的:(android自动化测试)