现将部分核心代码粘贴如下:
1. Set adb location
System.setProperty("hierarchyviewer.adb","E:\\ \\Android\\android-sdk-windows\\tools");
其中”hierarchyviewer.adb” 这个key是hierarchyviewer.jar中指定的,后面的value是存放Android SDK的路径。这个目录必须是当前运行的模拟器所对应的adb的目录,不能自行使用其他目录下adb,否则会发生adb进程异常退出的错误。
2. Get Active Device
IDevice[] devices = null;
DeviceBridge.terminate();
while(null==devices || 0==devices.length){
DeviceBridge.initDebugBridge() ;
//it must wait for some time, otherwise will throw exception
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
devices = DeviceBridge.getDevices() ;
}
return devices;
以上方法返回的是所有当前运行的Device列表
3. Start View Server
DeviceBridge.startViewServer(device);
4. Load Scene
ViewHierarchyLoader.loadScene(device,Window.FOCUSED_WINDOW) ;
5. Get Root View Node
vhs.getRoot() ;
其中vhs是ViewHierarchyScene的实例对象
6. Get Sub View Node
public ViewNode findFirstChildrenElement(IDevice device, ViewNode entryViewNode, String elementID){
ViewNode node=null;
if(0!=entryViewNode.children.size()){
for(int i=0;i<entryViewNode.children.size();i++){
node=entryViewNode.children.get(i);
if(node.id==elementID)
return node;
else
continue;
}
}
return node;}
虽然上述步骤所涉及的代码量不多,但是花了一天多的时间才终究研究出来,写下此文希望对正在研究Android自动化测试的同学们有些帮助。
到目前为止,Element已经得到了,接下去就是实现怎么去触发这些Element,如click button,enter text等等,尚需再慢慢研究,等有结果再贴出来分享!