Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android自動化測試中uiautomator修改uiautomatorviewer獲取不到動態界面的缺陷

Android自動化測試中uiautomator修改uiautomatorviewer獲取不到動態界面的缺陷

編輯:關於Android編程

在之前的第一篇文章:


android自動化測試中hierarchyviewer和uiautomatorviewer獲取控件信息的方式比對(1)


我說uiautomatorviewer獲取動態的界面會報錯。錯誤如下:


\


今天我學習uiautomator的時候,用dumpWindowHierarchy()獲得控件信息的時候,發現這個方法可以得到動態的界面信息。這就彌補了uiautomatorviewer的缺陷。下面把過程給大家貼出來。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGJyPgo8L3A+CjxwPsjnus6x4NC0amF2Ybmks8zOxLz+tcTQxc+io6zHsLGyw8fQtMHLuty24KOsztKw0c7S0afPsLXEway907fFuPi087zSoaM8L3A+CjxwPjxicj4KPC9wPgo8cD5odHRwOi8vYmxvZy5jc2RuLm5ldC9yb2Jpbnpob3UvYXJ0aWNsZS9kZXRhaWxzLzg0NDcwNTg8YnI+CjwvcD4KPHA+PGJyPgo8L3A+CjxwPs7SvPHW99KqtcS9q6GjamF2YbT6wuujujwvcD4KPHA+PGJyPgo8L3A+CjxwPjwvcD4KPHByZSBjbGFzcz0="brush:java;">package com.ibm.test; import java.io.File; import com.android.uiautomator.core.UiDevice; import com.android.uiautomator.core.UiObjectNotFoundException; import com.android.uiautomator.testrunner.UiAutomatorTestCase; public class MyUIauto extends UiAutomatorTestCase { private static final String TAG = "MyUIauto"; public void testPressHome() throws UiObjectNotFoundException { File file = new File("/data/local/tmp/local/tmp/qian.xml"); UiDevice uiDevice = getUiDevice(); //uiDevice.pressHome(); String realPath = "qian.xml"; uiDevice.dumpWindowHierarchy(realPath); } }
我看了一下dumpWindowHierarchy的方法源碼:


    public void  [More ...] dumpWindowHierarchy(String fileName) {
        AccessibilityNodeInfo root = getAutomatorBridge().getQueryController().getAccessibilityRootNode();
        if(root != null) {
            AccessibilityNodeInfoDumper.dumpWindowToFile(
                    root, new File(new File(Environment.getDataDirectory(),
                            "local/tmp"), fileName));
        }
    }


官網上的說明默認目錄是/data/local/tmp目錄,但從源碼上可以看見它又增加了local/tmp目錄。合並起來就是/data/local/tmp/local/tmp目錄。這也是我起先隨便建立個目錄造成的錯誤的原因,老是報/data/local/tmp/local/tmp/下無文件的錯誤。後來找到源碼才知道。源碼網站給大家:


http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.2_r1/com/android/uiautomator/core/UiDevice.java#UiDevice.dumpWindowHierarchy%28java.lang.String%29


編寫完java工程 以後,用ant命令生成jar包,然後把jar包push到設備上,將秒表打開。然後運行腳本,得到xml文件,抓到本地。查看xml文件如下:




	
		
			
				
					
						
							
						
					
				
			
			
				
					
						
							
								
								
							
						
						
							
							
							
						
						
							
						
					
				
			
			
				
					
						
							
								
								
							
						
						
							
								
								
							
						
						
							
								
								
							
						
						
							
								
								
							
						
					
				
			
		
	

所以,這個方式才是獲得控件的最佳方法。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved