zoukankan      html  css  js  c++  java
  • Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比

    Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比

     

      上一篇文章:

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

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

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
     
    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] view plaincopy在CODE上查看代码片派生到我的代码片
     
    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的研究就到此为止了。把这个放出来,可能有点测试需求得到之前画面的信息,那么这个可以满足你。

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

    总结

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

  • 相关阅读:
    [转]addEventListener() 方法,事件监听
    JavaScrpit判断横竖屏
    无法获得锁 /var/lib/dpkg/lock
    配置Meld为git的默认比较工具
    C#多线程之旅(7)——终止线程
    【SQL进阶】03.执行计划之旅1
    单问号和双问号
    聚集索引VS非聚集索引
    【T-SQL进阶】02.理解SQL查询的底层原理
    【T-SQL】系列文章全文目录(2017-06-26更新)
  • 原文地址:https://www.cnblogs.com/duanweishi/p/4460624.html
Copyright © 2011-2022 走看看