怎么查看app应用的控件id呢?
下面是我收集到的资料.Delphi xe7 也有这样的工具,路径如下:
E:\Delphi XE7\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\tools
直接双击 uiautomatorviewer.bat 文件,或者 hierarchyviewer.bat 都可以。至于怎么用呢,我还没有用过啊,不过本文中也有收集到使用方法,可以参考一下。
我们其实还可以使用DDMS工具里的Dump View Hierarchy For UI Automator 去分析微信UI结构,这个方法也是我后面才发现的,比上面的代码更有效,如下图:
dump View Hierarchy
http://blog.csdn.net/caiwenfeng_for_23/article/details/38498337
【Android工具】被忽略的UI检视利器:Hierarchy Viewer
http://blog.csdn.net/ddna/article/details/5527072 //名为hierarchyviewer.bat
百度搜:dump view hierarchy 下载
uiautomatorviewer
http://www.jianshu.com/p/4b376211ad22
http://blog.csdn.net/limonzet/article/details/53229157
启动sdk目录tools目录下的uiautomatorviewer,点击device screenshot得到当前手机界面的截图,可以根据此截图写测试代码;
http://www.cnblogs.com/alexthecoder/p/4654961.html
一步一步带你学uiautomatorviewer
http://www.cnblogs.com/ITGirl00/p/4235466.html
在写测试用例之前,你最好熟悉待测应用的UI组件(包括视图views和控件controls)。uiautomatorviewer可以帮助你实现这一点,uiautomatorviewer获取当前UI界面的快照,提供一个可视化的界面,来检查布局层次、查看每一个显示在设备上的UI组件的属性。在以后的uiautomator测试中,你可以利用uiautomator提供的信息来选择特定的UI组件。
http://blog.csdn.net/daweibalang717/article/details/51726665
XML布局
http://www.sunnyos.com/article-show-10.html //android获取app控件id
Delphi XE7 学习笔记(八)Android发布文件
http://blog.sina.com.cn/s/blog_44fa172f0102v2ro.html
http://blog.csdn.net/seu_calvin/article/details/51912738
但是可以通过反编译apk文件拿到View的ID即可获取到这个节点
android 怎么获取控件的id
https://zhidao.baidu.com/question/266293471573632605.html
https://www.cnblogs.com/itchq/articles/5648657.html
第四步、查找到我们想要处理的节点View
这里系统提供了两个方法让我们来进行查找想要的节点View
第一种是通过节点View的Text内容来查找
findAccessibilityNodeInfosByText("查找内容")
这种方式查找,就是像TextView,Button等View有文本内容的,可以使用这种方式快速的找到。
第二种是通过节点View在xml布局中的id名称
findAccessibilityNodeInfosByViewId("@id/xxx")
这个一般很难知道,但是我们在查找系统控件的时候还是可以做的,因为系统的控件的id是可以知道的,而且是统一的。
(关于这两个方法我们在写网页爬虫程序的时候可能知道,在html中通过tag/name/id等信息可以找到一个节点,原理都类似)
http://blog.csdn.net/nishitouzhuma/article/details/51584606
获取当前界面各种资源,信息
//获取根节点
AccessibilityNodeInfo rootNode = getRootInActiveWindow();
//匹配Text获取节点
List<AccessibilityNodeInfo> list1 = rootNode.findAccessibilityNodeInfosByText("match_text");
//匹配id获取节点
List<AccessibilityNodeInfo> list2 = rootNode.findAccessibilityNodeInfosByViewId("match_id");
//获取子节点
AccessibilityNodeInfo infoNode = rootNode.getChild(index);
执行脚本操作
//模拟点击事件
target.performAction(AccessibilityNodeInfo.ACTION_CLICK);
//模拟输入内容
clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label", "");
clipboard.setPrimaryClip(clip);
target.performAction(AccessibilityNodeInfo.ACTION_PASTE);