UiAutomator2.0笔记之By和BySelector API(九)

ByBySelector所实现的功能相同,API也基本上相同,By是对BySelector的简化,官网是这样解释的:

By is a utility class which enables the creation of BySelectors in a concise manner.

Its primary function is to provide static factory methods for constructing BySelectors using a shortened syntax. For example, you would use findObject(By.text(“foo”)) rather than findObject(new BySelector().text(“foo”)) to select UI elements with the text value “foo”.

翻译为:By是BySelector的一个实用类,By的主要功能是提供静态方法并使用简单的语法去构建BySelector进而进行控件的筛选。eg: 
当你寻找一个text为foo的控件时,BySelector的写法为:findObject(new BySelector().text(“foo”))
而By则可以对之进行简化,可以写为:findObject(By.text("foo"))

By、BySelector

API

Example

API

static BySelector checkable(boolean isCheckable)

构造一个new BySelector并设置可检查条件。

static BySelector checked(boolean isChecked)

构造一个new BySelector并设置检查的条件。

static BySelector clazz(String packageName, String className)

构造一个new BySelector并设置类名标准。

static BySelector clazz(Class clazz)

构造一个new BySelector并设置类名标准。

static BySelector clazz(Pattern className)

构造一个new BySelector并设置类名标准。

static BySelector clazz(String className)

构造一个new BySelector并设置类名标准。

static BySelector clickable(boolean isClickable)

构造一个new BySelector并设置可单击的条件。

static BySelector copy(BySelector original)

构造一个新的BySelector并复制标准original

static BySelector depth(int depth)

构造一个新的BySelector并设置深度标准。

static BySelector desc(String contentDescription)

构造一个新的BySelector并设置内容描述标准。

static BySelector desc(Pattern contentDescription)

构造一个新的BySelector并设置内容描述标准。

static BySelector descContains(String substring)

构造一个新的BySelector并设置内容描述标准。

static BySelector descEndsWith(String substring)

构造一个新的BySelector并设置内容描述标准。

static BySelector descStartsWith(String substring)

构造一个新的BySelector并设置内容描述标准。

static BySelector enabled(boolean isEnabled)

构造一个new BySelector并设置启用的条件。

static BySelector focusable(boolean isFocusable)

构造一个new BySelector并设置可聚焦标准。

static BySelector focused(boolean isFocused)

构造一个新的BySelector并设置重点标准。

static BySelector hasChild(BySelector childSelector)

构造一个new BySelector并添加子选择器条件。

static BySelector hasDescendant(BySelector descendantSelector, int maxDepth)

构造一个new BySelector并添加一个后代选择器条件。

static BySelector hasDescendant(BySelector descendantSelector)

构造一个new BySelector并添加一个后代选择器条件。

static BySelector longClickable(boolean isLongClickable)

构造一个new BySelector并设置长可点击标准。

static BySelector pkg(Pattern applicationPackage)

构造一个new BySelector并设置应用程序包名称条件。

static BySelector pkg(String applicationPackage)

构造一个new BySelector并设置应用程序包名称条件。

static BySelector res(String resourceName)

构造一个new BySelector并设置资源名称条件。

static BySelector res(String resourcePackage, String resourceId)

构造一个new BySelector并设置资源名称条件。

static BySelector res(Pattern resourceName)

构造一个new BySelector并设置资源ID标准。

static BySelector scrollable(boolean isScrollable)

构造一个new BySelector并设置可滚动条件。

static BySelector selected(boolean isSelected)

构造一个new BySelector并设置所选条件。

static BySelector text(Pattern regex)

构造一个new BySelector并设置文本值标准。

static BySelector text(String text)

构造一个new BySelector并设置文本值标准。

static BySelector textContains(String substring)

构造一个new BySelector并设置文本值标准。

static BySelector textEndsWith(String substring)

构造一个new BySelector并设置文本值标准。

static BySelector textStartsWith(String substring)

构造一个new BySelector并设置文本值标准。

Example

    //获取UiDevice实例
    UiDevice mDevice=UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());

    //以id筛选控件
    UiObject2 addBtn = mDevice.findObject(By.res("com.star.uiautomator:id/add")).click();
    //以控件描述description筛选控件
    UiObject2 resultBtn = mDevice.findObject(By.res("calculator the result"));

    //多个条件组合筛选控件
    UiObject2 resbutton = mDevice.findObject(By.desc("calculator the result")
                        .clazz(Button.class)
                        .res("com.star.uiautomator:id/calculator")
                        .pkg("com.star.uiautomator")
                        .scrollable(false)
                        .selected(false));  
 

猜你喜欢

转载自blog.csdn.net/u013247461/article/details/85333938