(注意:本文基于UI Automator测试框架版本为2.2.0)
ByMatcher类是UI Automator自动化测试框架的重要组成类,该类提供的功能用于定位控件(查找控件),平时我们是不会直接使用ByMatcher对象!ByMatcher类的主要用户是UiDevice、UiObject2,因为它们可以用来查找控件,话不多说,一起学习一下ByMatcher的设计!
类结构介绍
class ByMatcher {
}
完全独立的一个类,父类是Object
类变量介绍
private static final String TAG = ByMatcher.class.getSimpleName();
用于Debug输出,作为tag使用
实例变量介绍
private UiDevice mDevice;
private BySelector mSelector;
private boolean mShortCircuit;
ByMatcher对象持有的3个实例变量
1、mDevice,持有一个表示设备的UiDevice对象
2、mSelector,持有一个用于查找控件的BySelector对象
3、mShortCircuit,持有一个标志位,表示查找控件的规则,若为true时,则查找控件时,只要找到一个匹配的控件,就会返回给调用者,不再继续查找控件
ByMatcher构造方法分析
private ByMatcher(UiDevice device, BySelector selector, boolean shortCircuit) {
mDevice = device;
mSelector = selector;
mShortCircuit = shortCircuit;
}
将传入的UiDevice对象、BySelector对象、boolean值分别赋值为ByMatcher对象持有的3个实例变量中,表示对象初始化完成
两个静态方法(对外提供)
1、findMatches()方法,用于查找多个控件
2、findMatch()方法,用于查找单个控件
重载的实例方法findMatchers(对内使用)
1、findMatches(1个参数)
2、findMatches(5个参数)
重载的实例方法checkCriteria(根据给定的条件与控件的属性进行匹配)
两个静态内部类