UIAutomator1.0 API簡介

1. UiDevice對象
getUiDevice()的方法可以得到一個UiDevice的對象,通過這個對象可以完成一些針對設備的動作:
click(int x, int y)
----在(x,y)表示的像素地方點擊
pressBack()
pressDelete()
pressEnter()
pressHome()
pressMenu()
pressSearch()
----點擊相應的按鍵
wakeUp()
----當手機處於滅屏狀態時,喚醒屏幕,並解鎖。
swipe(startX, startY, endX, endY, steps)
----在手機上滑動,從(startX,startY)到(endX,endY)。steps表示滑動的這個距離分爲幾步完成,數目越少,滑動幅度越大。
setOrientationLeft()
setOrientationRight()
----將手機向相應方向旋轉。
setOrientationNatural()
----將手機旋轉狀態迴歸正常。

2. UiSelector對象
UiSelector可以理解爲一種條件對象,描述的是一種條件,配合UiObject使用,可以得到某個(某些)符合條件的控件對象。
checked(boolean val)
----描述一種check狀態爲val的關係。
className(className)
----描述一種類名爲className的對象關係
clickable(boolean val)
----與checked類似,描述clickable狀態爲val的關係
description(desc)
----描述信息
descriptionContains(desc)
----與description類似
focusable(boolean val)
----與checked類似
index(index)
----用當前對象在父對象集中的索引作爲描述
packageName(String name)
----用包名作爲條件描述
selected(val)
----描述一種選擇關係
text(text)
----最爲常用的一種關係,用控件上的文本即可找到當前控件,需要注意,所有使用text屬性找到的控件。
textContains(text)
----與text類似
textStartsWith(text)
----與text類似

3. UiObject對象
控件對象,一個UiObject對象可以通過一下形式得到:
UiObject mItem = new UiObject(new UiSelector().text("English"));
也就是配合一個UiSelector就可以得到一個控件。
click()
----點擊控件
clickAndWaitForNewWindow()
----點擊某個控件,並等待窗口刷新
longClick()
----長按
clearTextField()
----清除文本,主要針對編輯框
getChildCount()
----這個方法可以看出,其實UiObject也可以是一個控件的集合
getPackageName()
----得到控件的包名
getSelector()
----得到當前控件的選擇條件
getText()
----得到控件上的Text
isCheckable()
isChecked()
isClickable()
isLongClickable()
isScrollable()
isScrollable()
isSelected()
----判斷是否具備某個屬性

4. UiCollection對象
這個對象可以理解爲一個對象的集合。因爲UiSelector描述後得到的有可能是多個滿足條件的控件集合,因此可以用來生成UiCollection:
UiCollection mUiCollection = new UiCollection(new UiSelector().text("Settings"));
getChild(selector)
----從集合中再次通過UiSelector選擇一個UiObject對象
getChildByDescription(childPattern, text)
----從一個匹配模式中再次以text爲條件選擇UiObject
getChildByText(childPattern, text)
----與上面類似。
getChildCount()
----得到當前集合中控件的個數

5. UiScrollable對象
UiScrollable可以生成一個滾動動作的對象,其最大的作用就是可以實現滾動的查找某個元素。比如在“設置”菜單中,“語言和輸入法”這個菜單比較靠下,需要滾動後纔可以看到(找到),因此就用上了UiScrollable:
UiScrollable settingItems = new UiScrollable( new UiSelector().scrollable(true)); 
UiObject languageAndInputItem = settingItems.getChildByText(new UiSelector().text("Language & input"), "Language & input", true); 
上面的形式就可以在滾動中查找顯示有“Language & input”的控件,也就是“語言和輸入法”的設置項。

6. sleep和添加Log的方法
如果是對於一個標準的UiObject對象,可以通過clickAndWaitForNewWindow的方法在點擊之後主動等待一段事件,但是如果需要額外的等待一段時間,特別對於getUiDevice().pressHome();這種操作,可能需要很長的事件去爲下一步操作獲取更多的事件,此時我們可以使用線程的sleep方法去實現:
//等待3秒 
try { 
Thread.sleep(3000); 
} catch (InterruptedException e1) { 
e1.printStackTrace(); 

而添加Log的方法也可以通過Java標準的println來實現:
System.out.println("This used to print some log!!!" + setLanItem.getText());
以上Log將會在jar被運行時通過cmd窗口打印出來。




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章