Espresso UI自动化测试 二(点击事件)

上面介绍了基本的输入框、文字显示,接下来我们说下监听事件

监听事件包含:文字监听、按钮、listView监听、gridView、arrayLIST、RecycleListView。

1、文字和按钮

通过id或是文字找到

onView(withId(R.id.search_text)).perform(click());
onView(withText("搜索")).perform(click());
如果当你遇到有相同文字时你可以通过他相邻的控件来判断;

onView(allOf(withText("数据"), hasSibling(withText("item 0")))).perform(click());
hasSibling ( withText ( "第一行" );表示是在第一行的旁边
2、listView、gridView、arrayLIST

下面我们通过代码说下listView的点击

Thread.sleep(1000);
        onView(withId(R.id.rl_contact_main_group_item)).perform(click());
        Thread.sleep(1000);//等待加载列表
        onData(instanceOf(TNPFeed.class))                  //item的数据类型
                .inAdapterView(withId(R.id.lv_contact))    //根据listView的id 找到adapter
                .atPosition(1)                             //找到listView的某个item
                .perform(click());                         //点击
        Thread.sleep(2000);

       Thread.sleep(1000); 表示主线程等待1秒;为什么需要些这个代码呢,那是因为如果界面还未加载出来,你就去执行点击控件的操作,会报找不到View的错误,所有如果界面上的内容比较复杂可以相应的控制时间,特别是在请求接口时候,就更要延长时间;
      onView(withId(R.id.rl_contact_main_group_item)).perform(click());表示点击一个id为R.id.rl_contact_main_group_item的控件;

     instanceOf(TNPFeed.class);表示你列表数据的对象

     .atPosition(1)   里面的1表示你要点击的位置;

  onData(instanceOf(TNPFeed.class)).inAdapterView(allOf(withId(R.id.lv_apps),isDisplayed())).atPosition(0).perform(click());
  allOf(withId(R.id.lv_apps),isDisplayed()) 表示id是R。id.lv_apps并且是在当前页,只有满足了这两个要求才是我们要找的控件

3、RecycleListView

这个是比较特殊的,他和listView还有有很大差别的,他不能像listView那样通过InAdapterView()来获取,

 ViewInteraction interaction = onView(withId(R.id.lst_class));
            interaction.check(matches(isDisplayed()));
            interaction.perform(RecyclerViewActions.scrollToPosition(0));
            Thread.sleep(1000);
            interaction.perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));

RecyclerViewActions.scrollToPosition(0)表示的是其需要找到的位置,

RecyclerViewActions.actionOnItemAtPosition(0, click())) 这个是其需要点击的位置,并且调用click()方法点击;

那么还有一个问题如果一个页面只能显示10条数据,你要点击第15条怎么办,没关系的如果有存在第15条数据,那么它会自动滑动的;


下面这个里面作者也写的挺好的,涉及到的内容比较广;

https://testerhome.com/topics/5145

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值