Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比
来源:互联网 发布:二战美军装备知乎 编辑:程序博客网 时间:2024/05/16 08:41
上一篇文章:
Android自动化测试中AccessibilityService获取控件信息(1)
已经做到了获得控件信息,但是AccessibilityEvent.getSource()得到的是被点击的单体对象。我们需要获得是整个窗口的对象,在API16中AccessibilityService新引入的方法getRootInActiveWindow()可以满足我们的要求,所以我们用这个方法得到整个窗口,然后遍历得到所有子节点。
AccessibilityNodeInfo rowNode = getRootInActiveWindow(); if (rowNode == null) { Log.i(TAG, "noteInfo is null"); return; } else { recycle(rowNode); } Log.i(TAG, "==============================================");
其中循环的方法recycle():
public void recycle(AccessibilityNodeInfo info) {if (info.getChildCount() == 0) {Log.i(TAG, "child widget----------------------------" + info.getClassName());Log.i(TAG, "showDialog:" + info.canOpenPopup());Log.i(TAG, "Text:" + info.getText());Log.i(TAG, "windowId:" + info.getWindowId());} else {for (int i = 0; i < info.getChildCount(); i++) {if(info.getChild(i)!=null){recycle(info.getChild(i));}}}}
打印输出的信息有:控件名、是否点击弹出对话框、窗口ID;你还可以查看API里的方法,获得你想要的信息。
部署到手机上,测试结果如下:
从测试的结果看,我们确实得到了我们想要的控件信息,但是发现每一个窗口信息其实是点击前的窗口信息,我们无法得到当前窗口信息。我要做的是遍历当前窗口里的所有控件。这不符合我的要求,所有对AccessibilityService的研究就到此为止了。把这个放出来,可能有点测试需求得到之前画面的信息,那么这个可以满足你。
所以下一步,我又要从其他方面着手啦。
总结
三种方式学习完了,对比一下各种方式的优缺点!
2 0
- Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比
- Android自动化测试中AccessibilityService获取控件信息(1)
- Android自动化测试中AccessibilityService获取控件信息(3)
- Android自动化测试中AccessibilityService获取控件信息(1)
- Android自动化测试中AccessibilityService获取控件信息
- Android自动化测试中AccessibilityService获取控件信息
- Android自动化测试中AccessibilityService获取控件信息
- android自动化测试中hierarchyviewer和uiautomatorviewer获取控件信息的方式比对(2)
- android自动化测试中hierarchyviewer和uiautomatorviewer获取控件信息的方式比对(2)
- android自动化测试中hierarchyviewer和uiautomatorviewer获取控件信息的方式比对(1)
- android自动化测试中hierarchyviewer和uiautomatorviewer获取控件信息的方式比对(1)
- android自动化测试中hierarchyviewer和uiautomatorviewer获取控件信息的方式比对(1)
- Android自动化测试中AccessibilityService
- android自动化测试中hierarchyviewer和uiautomatorviewer获取控件信息的方式比对
- android自动化测试中hierarchyviewer和uiautomatorviewer获取控件信息的方式比对
- Android 自动化测试—robotium(三)EditText控件
- Android 自动化测试—robotium(三)EditText控件
- Android 自动化测试—robotium(三)EditText控件
- CheckedTextView实现ListView的单选效果
- 动手实战SQL Server死锁
- URL路径中含有中文
- layout_weight 的解释及使用
- 洗牌算法——第一篇技术博客
- Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比
- ant脚本实现的Android自动编译
- epoll的LT模式和ET模式
- 在C#中获取如PHP函数time()一样的时间戳
- The value for the useBean class attribute XXX is invalid 异常绝对详解释
- 第五周 项目4指向学生类的指针
- PHP程序员的C学习之路5 - 第四章, C语言指针初体现
- PAT 1080. Graduate Admission (30)
- STL_queue