Java+Uiautomator -- 4.下滑找到想要的内容自动点击

进入到手机的页面,假如直接有这个元素,我们就可以直接点击,假如没有呢,就点击不了,这个时候就需要我们先滑动找到元素,然后再次的进行点击操作。

(由于我的写法是POM写法,page代码就不贴了,大家看思路就可以了)

 

例子:进入到手机的setting列表,然后找到Biology ID,点击它。

封装一个长列表查询方式:

//封装一个列表查询
public void settingsListItem(String item) throws UiObjectNotFoundException {
    if (mDevice.hasObject(By.textContains(item))) {
        find(By.textContains(item)).clickAndWait(Until.newWindow(), 3000);
    } else {
        UiScrollable findItem = new UiScrollable(new UiSelector().className("android.support.v7.widget.RecyclerView"));
        findItem.scrollTextIntoView(item);
        find(By.textContains(item)).clickAndWait(Until.newWindow(), 3000);
    }
  }

代码也很简单,就是找这个元素,假如有就点击,没有就滑动找到,然后点击。

代码中有一行className,这个代表的是手机的滚动条

UiScrollable findItem = new UiScrollable(new UiSelector().className("android.support.v7.widget.RecyclerView"));

具体可以看下图,我们直接在weditor中定位到整个settings List的前端代码,然后就可以实现了。

SettingPage代码:

private BySelector biologyIdButtonSelector = By.text("Biology ID");

//在setting界面,进入到Biology ID
public boolean enterBiologyIdList() throws UiObjectNotFoundException {
    String biologyIdButton = "Biology ID";
    settingsListItem(biologyIdButton);
    return mDevice.wait(Until.hasObject(biologyIdButtonSelector), LAUNCH_CALL_PAGE);
}

Case判断:

@Test
public void testSettings_0098_checkEnterBiologyId() throws UiObjectNotFoundException {
    //进入Biology ID
    boolean isEnterBiologyId = mSettingsPage.enterBiologyIdList();
    Assert.assertTrue("enter biology id fail", isEnterBiologyId);
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值