UiAutomator2—By、BySelector
By和BySelector所实现的功能相同,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进而进行控件的筛选。例如:
当你寻找一个text为foo的控件时,BySelector的写法为:
findObject(new BySelector().text(“foo”))
而By则可以对之进行简化,可以写为:
findObject(By.text("foo"))
API
| Return type | function and description |
|---|---|
| static BySelector | checkable(boolean isCheckable)/checked(boolean isChecked)br> 控件是否可被勾选/以被勾选 |
| static BySelector | clazz(String packageName, String className) 控件的类名 clazz(Class clazz) clazz(Pattern className) clazz(String className) |
| static BySelector | clickable(boolean isClickable)/longClickable(boolean isLongClickable) 控件是否可以被点击/长按 |
| static BySelector | copy(BySelector original) |
| static BySelector | depth(int depth) 设置布局文件的层级筛 |
| static BySelector | desc(String contentDescription) 控件的描述信息 desc(Pattern contentDescription) descContains(String substring) descEndsWith(String substring) descStartsWith( |

本文介绍了UiAutomator2中的By和BySelector,它们用于自动化测试中选择UI元素。By作为BySelector的简洁版,提供了更方便的API。通过By的静态工厂方法,可以更直观地构建查找控件的表达式,例如查找text为'foo'的元素。文章会进一步探讨这两个类的API用法和示例。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



