天天看點

uiautomator中UiSelector學習筆記(3)4.1版本

4.1版本

UiSelector為條件器,你在獲得一個UiObject/UiCollection/UiScrollable對象時都要傳入這樣一個UiSelector對象進去。UiSelector對象裡的方法就是添加各種條件。

text(String text)/textStartsWith(String text)/textContains(String text)

設定Text等于text字元串/以text字元串開始/包含text字元串

 description(String desc)/descriptionStartsWith(String desc)/descriptionContains(String desc)

設定Content-desc的值為desc/以desc開始/包含desc

selected(boolean val)/scrollable(boolean val)/checked(boolean val)/clickable(boolean val)/enabled(boolean val)/focusable(boolean val)/focused(boolean val)

設定selected/scrollable/checked/clickable/enabled/focusable/focusable/focused屬性

index(int index)/instance(int instance)/packageName(String name)/className(String className)

設定index/instance/packageName/className屬性值

buildSelector(int selectorId,Object  selectorValue)

 傳回的還是UiSelector對象,傳入的參數都會放在UiSelector中的變量mSelectorAttributes中,該變量為一個SparseArray數組中。

childSelector(UiSelector selector)

設定SELECTOR_CHILD的值

patternSelector(UiSelector selector)

設定SELECTOR_PATTERN的值

containerSelector(UiSelector selector)

設定SELECTOR_CONTAINER的值

fromParent(UiSelector selector)

設定SELECTOR_PARENT的值

cloneSelector()

複制目前UiSelector,産生一個新的UiSelector。

patternBuilder(UiSelector selector)/patternBuilder(UiSelector contain,UiSelector pattern)

暫時未知(用2個已知的比對器建構出複雜的比對器,得到的新比對器要同時符合傳進來的2個比對器?)

getChildSelector()

在hashMap得到以SELECTOR_CHILD為key值的Selector對象

getPatternSelector()

在hashMap得到以SELECTOR_PATTERN為key值的Selector對象

getContainSelector()

在hashMap得到以SELECTOR_CONTAINER為key值的Selector對象

getParentSelector()

在hashMap得到以SELECTOR_PARENT為key值的Selector對象

 getInstance()

得到key=9個的值,整數值。找不到的話傳回0

getString(int criterion)/getBoolean(int criterion)/getInt(int criterion)

得到key=criterion的值,找不到傳回null/false/0

isMatchFor(AccessibilityNodeInfo info,int index)

判斷info是否符合該比對器所比對的控件,index比對SELECTOR_INDEX的值

matchOrUpdateInstance()

SELECTOR_INSTANCE和SELECTOR_COUNT是否相等,如果不相等就更新SELECTOR_COUNT的值

isLeaf()

方法名為葉子,看源碼意思就是是否存在子節點和父節點。

hasChildSelector()/hasPatternSelector()/hasParentSelector()/hasContainerSelector()

存放屬性的SparseArray對象是否包含SELECTOR_CHILD/SELECTOR_PATTERN/SELECTOR_PARENT/SELECTOR_CONTAINER對象

getLastSubSelector()

獲得SELECTOR_CHILD對象,如果沒有則獲得SELECTOR_PARENT對象。深度周遊直到不存在SELECTOR_CHILD或SELECTOR_PARENT.傳回該對象

繼續閱讀