Espresso onView 自定义查找控件

983 阅读1分钟

众所周知,Espresso 可以通过ovView 传入ViewMatchers工具类封装的 withId、withText等方法找到界面上存在且具有唯一特征\color{red}{界面上存在且具有唯一特征}的view:

但是对于,一些没有id、没有text的自定义控件如何查找?(如下)

有人会说:“简单,自定义控件,一般是继承了View 拥有自己独特的类名,withClassName 和 instanceof 都可以找到。”:

但是前面说了,找到界面上存在且具有唯一特征\color{red}{界面上存在且具有唯一特征}的view,如果界面上加载了多个MyImageView,匹配MyIamgeView 类名就不再是唯一特征了,我们需要深挖MyImageView 的唯一特征,有独特的父类、独特的属性等。需要使用自定义Matchers :

上面通过实现Matchers 的匿名类,匹配唯一特征url ,来查找控件,也可以使用实现BoundeMathcer(他是Matchers 的子类):

以上自定义的方式查找控件,让我们对控件的查找更加灵活,贴近开发。切入项目,其中有很多变化,如 :

控件是没有唯一特征的列表子项,你可以找到的父布局RecyclerView 或listView;在检查时、操作时对他的子项进行遍历,然后做操作等。这些就是后面自定义检查、自定义操作的文档需要补充的内容了。