Espresso 自动化测试(十二) -recyclerView 以及 viewPager的使用
来源:互联网 发布:旅游大数据应用 编辑:程序博客网 时间:2024/06/06 13:09
这段时间一直在使用espresso 进行Android 自动化测试,说句实在话,真是不实际用一下有很多东西都不会明白吧。下来列举两个遇到的问题以及解决的方法吧
界面存在一个viewpager,viewpager中的内容是两个Recyclerview并且他们的resourceId都是一致的,
这个时候,如果了解espresso的大概都能知道如果我简单的通过onView=(withId(recyclerviewId))
的话,测试过程中就会抛出如下的异常
AmbiguousViewMatcherException:This matcher matches multiple views in the hierarchy
那么这个问题要如何解决呢,其实也挺简单的。因为我们简单对比下两个recyclerView就会发现问题了,一个是VISIBLE,另一个则是INVISIBLE。所以我们可以通过下面的代码来进行确定当前界面的RecyclerView.
onView(allOf(withId(recyclerViewId), isDisplayed()))
通过当前可见的来指定出对应的元素了。
解决完上一个问题,又出来一个新的问题了。有一个操作需要滑动到下一个RecyclerView界面,进行某个按钮的点击。代码如下:
Commons.viewPagerSwipLeft(R.id.edit_performance_avatars_viewPager); Commons.clickRecyclerViewElementByPos(R.id.fragment_avatars_recyclerView, position);
我做了一个简单的封装,上面的步骤应该看名字就能知道做了一个向左滑动的操作,再来点击Recyclerview的某一个位置的按钮。可是就这么一个简单的操作问题就来了。每次运行到点击的时候又报了跟上面一样的错误。
AmbiguousViewMatcherException:This matcher matches multiple views in the hierarchy
我再三的检查了代码,没问题啊,但是通过看log发现两个Recyclerview竟然当前的状态都是VISIBILE。这个也太奇怪了。
通过再三的分析,发现调试的时候就可以运行成功,正式运行就失败。最后终于发现原来是我的向左操作太快了,导致上一个滑动界面都未更新完,点击就出问题了,所以我们在滑动的后面增加一个延时。增加sleep的方法需要实现IdingResource。具体可以查看
Espresso自动化测试(十一) - IdlingResource
0 0
- Espresso 自动化测试(十二) -recyclerView 以及 viewPager的使用
- Espresso 自动化测试(七)- Viewpager与Listview的使用
- Espresso 自动化测试的使用
- Espresso 自动化测试(五)- onData() 的使用
- Espresso 自动化测试 (六) - onData()的使用
- Espresso 自动化测试(十)- RecyclerView
- Espresso 自动化测试(八)- SeekBar的测试
- Espresso 自动化测试(九)-inRoot 使用
- Espresso 自动化测试(四)-中文字符的输入
- android studio使用espresso做自动化测试
- Android自动化测试--Espresso框架使用
- Espresso自动化测试(十三)- UiAutomator2与Espresso的结合
- Espresso:快速的Android UI自动化测试
- Android自动化测试框架Espresso(三)——View Action的使用
- 如何在Android Studio使用Espresso框架自动化测试
- Android 自动化测试 Espresso篇:简介&基础使用
- Espresso 自动化测试(一)
- Espresso自动化测试(十一) - IdlingResource
- Activity的使用
- 递归
- 设计模式六大原则简单介绍
- C++实现动态多维数组
- 【day0404】C++ main命令行选项
- Espresso 自动化测试(十二) -recyclerView 以及 viewPager的使用
- 迭代算法
- HNACM(七)A.物资调度
- JavaScript XML 跨浏览器
- 关于shared_ptr
- WebGIS入门知识
- 文件存储
- JavaScript常见跨域思路代码
- 《统计学习方法》笔记(4):朴素贝叶斯