日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2.UiSelector API 详细介绍

發布時間:2023/11/29 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2.UiSelector API 详细介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、UiSelector類介紹

//通過各種屬性與節點關系定位組件 簡單實例:public void testDemo2() throws UiObjectNotFoundException{UiSelector l= new UiSelector().text("相機");//搜索條件 UiObject object=new UiObject(l);//一句搜索條件找到對象 object.click();//操作對象

?


二、Androiud的布局與組件及組件屬性介紹

1.Android常用布局

TablesAre
線性布局linearLayout
表格布局TableLayout
相對布局RelativelLayout
幀布局FrameLayout
網格布局GridLayout
絕對布局AbsoluteLayout

2.Android常用組件

//文本框、編輯框、按鈕、單選按鈕、復選框、狀態開關按鈕、拖動條等等

3.Android組件屬性介紹

屬性值值類型例子
indexint0
instanceint5
classStringandroid.widget.TextView
packageStringcom.jian.test
Content descStringstring
checkablebooleanfalse
cleckedbooleanfalse
clickablebooleantrue
enabledbooleanfalse
focusablebooleanfalse
focusedbooleanfalse
Scrollablebooleanfalse
Long-clickablebooleanfalse
passwordbooleanfalse
selectedbooleanfalse
boundsRect[366,999][708,1197]

三、四種匹配關系的介紹

1.四種匹配關系介紹

完全匹配(默認)

包含匹配(Contains)

正則匹配(Matches)–可以包含完全匹配、包含匹配、起始匹配

起始匹配(StartWith)

2.例子

匹配字符串:0123456789
完全匹配:0123456789
包含匹配:45678
正則匹配:\d{10}
起始匹配:01234

四、節點關系介紹

五、對象搜索-文本與描述

1.文本屬性定位對象

返回值API說明
UiSelectortext(String text)文本
UiSelectortextContains(String text)文本包含
UiSelectortextMatches(String regex)文本正則
UiSelectortextStartsWith(String text)文本起始匹配
  • 實例:
public void testDemo1() throws UiObjectNotFoundException{//完全匹配:瀏覽器UiSelector l1= new UiSelector().text("瀏覽器");UiObject object1=new UiObject(l1);object1.click();//包含匹配:覽器UiSelector l2= new UiSelector().textContains("覽器");UiObject object2=new UiObject(l2);object2.click();//正則匹配:.*覽.*UiSelector l3= new UiSelector().textMatches(".*覽.*");UiObject object3=new UiObject(l3);object3.click();//起始匹配:瀏覽UiSelector l4= new UiSelector().textStartsWith("瀏覽");UiObject object4=new UiObject(l4);object4.click(); }

?

2.描述屬性定位對象

返回值API說明
UiSelectordescription(String desc)描述
UiSelectordescriptionContains(String desc)描述包含
UiSelectordescriptionMatches(String regex)描述正則
UiSelectordescriptionStartsWith(String desc)描述開始字符匹配
  • 實例:
public void testDesc() throws UiObjectNotFoundException{//完全匹配:應用UiSelector selector=new UiSelector().description("應用");UiObject object=new UiObject(selector);object.click();//包含匹配:UiSelector selector1=new UiSelector().descriptionContains("用");UiObject object1=new UiObject(selector1);object1.click();//正則匹配:UiSelector selector2=new UiSelector().descriptionMatches("應.*");UiObject object2=new UiObject(selector2);object2.click();//起始匹配:UiSelector selector3=new UiSelector().descriptionStartsWith("應");UiObject object3=new UiObject(selector3);object3.click();}

?

六、對象搜索-類名與包名

1.類名屬性定位:

返回值API說明
UiSelectorclassName(String className)類名
UiSelectorclassNameMatches(String regex)正則類名
  • 快速書寫方式:

?

(1)class.getName(推薦書寫方式)
(2)完整類名方式:android.widger.LinearLayout
(3)正則方式
(4)常量方式

  • 例如:
public void testDemo2() throws UiObjectNotFoundException{//完全匹配UiSelector selector =new UiSelector().className("android.view.View").instance(3);//instance(3)表示界面上從上到下第4-1個viewUiObject object=new UiObject(selector);object.click();//正則匹配UiSelector selector =new UiSelector().classNameMatches(".*View").instance(4);//instance(3)表示界面上從上到下第5-1個viewUiObject object=new UiObject(selector);object.click(); //class.getName輸入方式UiSelector selector =new UiSelector().className(View.class.getName()).instance(3);//instance(3)表示界面上從上到下第5-1個viewUiObject object=new UiObject(selector);object.click();}

?

2.包名屬性定位

返回值API說明
UiSelectorpackageName(String name)包名
UiSelectorpackageNameMatches(String regex)包名正則
  • 例如:
public void testDemo3() throws UiObjectNotFoundException{UiSelector selector =new UiSelector().packageName("com.android.deskclock");UiObject object=new UiObject(selector);object.click();}

?

七、對象搜索-索引與實例

1.索引與實例說明

1)索引index:指在同級中的編號,在兄弟類中的主鍵的編號
2)實例instance:整個布局文件中的編號,同一個類(比如6.2中的view類)的同級編號

2.索引與實例屬性定位對象

返回值API說明
UiSelectorindex(int index)索引
UiSelectorinstance(int instance)實例
  • 例如:
public void testIndex() throws UiObjectNotFoundException{//indexUiSelector selector =new UiSelector().className("android.widget.ImageButton").index(1);UiObject object=new UiObject(selector);object.click();UiDevice.getInstance().pressBack();//instanceUiSelector selector1 =new UiSelector().className("android.widget.ImageButton").instance(2);UiObject object1=new UiObject(selector1);object1.click();}

?

八、對象搜索-特殊屬性與節點

1.特殊屬性定位對象

返回值API說明
UiSelectorchecked(booleean val)選擇屬性
UiSelectorclickable(boolean val)可點擊屬性
UiSelectorenabled(boolean val)enabled屬性
UiSelectorfocusable(boolean val)焦點屬性
UiSelectorfocused(boolean val)當前焦點屬性
UiSelectorlongClickable(boolean val)長按屬性
UiSelectorscrollable(boolean val)滾動屬性
UiSelectorselected(boolean val)背景選擇屬性
  • 例如:
public void testDemo4() throws UiObjectNotFoundException{//checkable[開啟wifi(界面默認在設置界面的情況下),由于有wifi和藍牙兩個可點擊屬性,instance定位]UiObject swtitichObj=new UiObject(new UiSelector().checkable(true).instance(0));swtitichObj.click();//checked[關閉了wifi(界面默認在設置界面的情況下)]UiObject swtitichObj=new UiObject(new UiSelector().checked(true).instance(0));swtitichObj.click();//enable[界面默認在無編輯的信息框,buttom為發送按鈕]UiObject send=new UiObject(new UiSelector().enabled(false)); System.out.println(send.getClassName());//獲取并輸出這個屬性的類名//focused[在發送消息界面,光標默認停放位置在聯系人或信息框]UiObject focusedObj=new UiObject(new UiSelector().focused(true));focusedObj.setText("Jian");//輸入字符"Jian"//longClickable[界面默認位置為桌面首頁,多條件定位]UiObject longclick=new UiObject(new UiSelector().longClickable(true).index(4));longclick.click();//scrollable[界面默認位置為文件管理器界面]UiScrollable scrollable=new UiScrollable(new UiSelector().scrollable(true));scrollable.scrollForward();//向下滾動一下scrollable.scrollBackward();//向上滾動一下 }

?

2.節點屬性定位對象

返回值API說明
UiSelectorchildSelector(UiSelector selector)從當前類中往下遞歸找符合條件的子類組件
UiSelectorformPrent(UiSelector selector)從父類往下遞歸找符合條件的組件
  • 例如:
public void testDemo5() throws UiObjectNotFoundException{//childSelector[界面停留在文件管理界面]例一:UiScrollable scrollable=new UiScrollable(new UiSelector().scrollable(true).childSelector(new UiSelector().text("Android")));scrollable.click(); //childSelector[界面停留在文件管理界面]例二:UiObject focusedObj=new UiObject(new UiSelector().childSelector(new UiSelector().text("Android")));focusedObj.click();//formPrent[界面停留在文件管理界面]先定位父類再定位主類UiObject PrentObj=new UiObject(new UiSelector().resourceId("com.cyanogenmod.filemanager:id/navigation_view_details_item").fromParent(new UiSelector().className("android.widget.LinearLayout").index(1)));//先定位父類再定位主類 PrentObj.click();}

?


九、對象搜索-資源ID(推薦使用)

1.資源ID說明

1)資源ID屬性:
每一個組件都會的編號,也就是資源ID
2)對應Android屬性:
XML文件下的Android:ID屬性

2.資源ID定位對象

返回值API說明
UiSelectorresourceId(String id)資源ID
UiSelectorresourceIdMatches(String regex)資源ID正則
  • 例如:
public void testDemo6() throws UiObjectNotFoundException{//resourceId(String id)//定位不同ID的組件UiObject resoursId=new UiObject(new UiSelector().resourceId("com.cyanogenmod.filemanager:id/ab_filesystem_info")); resoursId.click();//定位相同ID的組件UiObject resoursId1=new UiObject(new UiSelector().resourceId("com.cyanogenmod.filemanager:id/navigation_view_details_item").index(3));//通過增加多個條件來定位(這里使用index) resoursId1.click();//resourceIdMatches(String regex)UiObject resoursId2=new UiObject(new UiSelector().resourceIdMatches(".*/navigation_view_details_item").index(3)); resoursId2.click(); }

?

轉載于:https://www.cnblogs.com/JianXu/p/5158396.html

總結

以上是生活随笔為你收集整理的2.UiSelector API 详细介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。