博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比
阅读量:6970 次
发布时间:2019-06-27

本文共 1154 字,大约阅读时间需要 3 分钟。

 

  上一篇文章:

已经做到了获得控件信息,但是AccessibilityEvent.getSource()得到的是被点击的单体对象。我们需要获得是整个窗口的对象,在API16中AccessibilityService新引入的方法getRootInActiveWindow()可以满足我们的要求,所以我们用这个方法得到整个窗口,然后遍历得到所有子节点。

[java] 
 
  1. AccessibilityNodeInfo rowNode = getRootInActiveWindow();  
  2.   if (rowNode == null) {  
  3.    Log.i(TAG, "noteInfo is null");  
  4.    return;  
  5.   } else {  
  6.    recycle(rowNode);  
  7.   }  
  8.   Log.i(TAG, "==============================================");  

其中循环的方法recycle():

[java] 
 
  1. public void recycle(AccessibilityNodeInfo info) {  
  2.         if (info.getChildCount() == 0) {  
  3.             Log.i(TAG, "child widget----------------------------" + info.getClassName());  
  4.             Log.i(TAG, "showDialog:" + info.canOpenPopup());  
  5.             Log.i(TAG, "Text:" + info.getText());  
  6.             Log.i(TAG, "windowId:" + info.getWindowId());  
  7.         } else {  
  8.             for (int i = 0; i < info.getChildCount(); i++) {  
  9.                 if(info.getChild(i)!=null){  
  10.                     recycle(info.getChild(i));  
  11.                 }  
  12.             }  
  13.         }  
  14.     }  

打印输出的信息有:控件名、是否点击弹出对话框、窗口ID;你还可以查看API里的方法,获得你想要的信息。

部署到手机上,测试结果如下:

  从测试的结果看,我们确实得到了我们想要的控件信息,但是发现每一个窗口信息其实是点击前的窗口信息,我们无法得到当前窗口信息。我要做的是遍历当前窗口里的所有控件。这不符合我的要求,所有对AccessibilityService的研究就到此为止了。把这个放出来,可能有点测试需求得到之前画面的信息,那么这个可以满足你。

  

  所以下一步,我又要从其他方面着手啦。

 

总结

 

三种方式学习完了,对比一下各种方式的优缺点!

 

转载于:https://www.cnblogs.com/duanweishi/p/4460624.html

你可能感兴趣的文章
工厂模式(Factory Patter)
查看>>
【转】sqlserver临时表操作
查看>>
计算机等级考试成绩查询系统的设计与实现vfp
查看>>
android:exported 属性详解
查看>>
AT907 心配性な富豪、ファミリーレストランに行く。
查看>>
查询窗体的制作
查看>>
正则表达式详解<一>
查看>>
dede会员中心修改
查看>>
腾讯工蜂Git关联Jenkins Hooks
查看>>
iscroll API
查看>>
数组查询和冒泡排序算法
查看>>
Android打开新的Activty不传递参数
查看>>
iOS书籍源码免费下载 关老师 作品《iPhone与iPad开发实战—iOS经典应用剖析》
查看>>
字符编码
查看>>
Git学习-Git时光机之版本回退(二)
查看>>
POJ 3080, Blue Jeans
查看>>
[翻译] V8引擎的解析
查看>>
C# 数据库连接字符串拼接
查看>>
css
查看>>
【算法】8 图文搭配诠释三种链表及其哨兵
查看>>