Tip:

1.扫动过程中如果界面停留在滚动条的中间部分会先回到起点再进行滚动
2.扫动过程中设置的步长长短决定划过内容的多少,步长越长滑过的内容就越少;步长越短划过的内容就越长

一、UiScrollable 类介绍

1.UiScrollable类说明

1)UiScrollable是UiCollection的子类,可以使用UiBoject和UiCollection的所有API
2)UiScrollable是专门处理滚动时间的类,提供各种滚动方法

二、快速滚动

1.滚动相关概念

1)步长:步长越长,滑动越慢
2)扫动:也就是滑动,扫动几次就是滑动几次

2.快速滚动相关API

返回值

API

说明

boolean flingBackward() 以步长为5(默认值)快速向上(后)滑动
boolean flingForward() 以步长为5(默认值)快速向下(前)滑动
boolean flingToBeginning(int maxSwipes) 自定义扫动次数以步长为5(默认值)快速滑动到开始
boolean flingTuEnd(int maxSwipes) 自定义扫动次数以步长为5(默认值)快速滑动到结束
  • 例如:
public void testDemo1() throws UiObjectNotFoundException{

    UiScrollable scroll=new UiScrollable(new UiSelector().className("android.widget.ListView"));
//以步长为5(默认值)快速向下(前)滑动
scroll.flingForward();
sleep(1000);
//以步长为5(默认值)快速向上(后)滑动
scroll.flingBackward();
sleep(1000);
//自定义扫动次数(5)以步长为5(默认值)快速滑动到结束
scroll.flingToEnd(5);
sleep(1000);
//自定义扫动次数(4)以步长为5(默认值)快速滑动到开始
scroll.flingToBeginning(4);
sleep(1000); }

三、获取列表子元素

返回值

API

说明

UiObject getChildByDescription(UiSelector childPattern,String text,boolean allowScrollSearch) 是否允许滚动查找获取具备UiSelector条件元素集合后再以文本描述条件查找对象
UiObject getChildByDescription(UiSelector childOattern,String text) 默认获取具备UiSelector条件的元素集合后再以文本描述条件查找对象
UiObject getChildByInstance(UiSelector childPattern,int instance) 获取具备UiSelector条件的子集,再从子集中按照实例筛选想要的元素(不滚动)
UiObject getChildByText(UiSelector childPattern,String text,boolean allowScrollSearch) 是否允许滚动获取具备UiSelector条件的元素集合后再以文本条件查查找对象
UiObject getChildByText(UiSelector childPattern,String text) 默认滚动获取具备UiSelector条件元素集合后再以文本条件的查找对象
  • 例如:
public void testDemo2() throws UiObjectNotFoundException{

    //getChildByText()
//1.找到集合
UiScrollable scroll=new UiScrollable(new UiSelector().className("android.widget.ListView"));
//2.使用默认滚动获取并点击对象(class.text定位)
UiObject Jian1016=scroll.getChildByText(new UiSelector().className("android.view.View"), "Jian1016");
Jian1016.click();
UiDevice.getInstance().pressBack();
//3.允许滚动获取并点击对象(class.text定位)
UiObject Jian1017=scroll.getChildByText(new UiSelector().className("android.view.View"), "Jian1017",true);
Jian1017.click();
UiDevice.getInstance().pressBack();
//4.不允许滚动获取并点击对象(class.text定位);当不允许滚动查找对象的时候若当前界面没有则报错
UiObject Jian1020=scroll.getChildByText(new UiSelector().className("android.view.View"), "Jian1020",false);
Jian1020.click(); //getChildByInstance()
//需要注意的是他没有滚动查找选项,他只会按照当前界面显示instance位置情况进行查找,如果超出当前界面instance数量则报错
UiObject Jian1=scroll.getChildByInstance(new UiSelector().className("android.view.View"), 1);
Jian1.click();
}

四、获取与设置最大滚动次数常量值

返回值

API

说明

int getMaxSearchSwipes() 获取执行搜索滑动过程中的最大滑动次数,默认常量为30 (若30次找不到则报错)
UiScrollable setMaxSearchSwipes(int swipes) 设置最大可扫动次数(超出设置次数还未搜索到则报错)
  • 例如:
public void testDemo3() throws UiObjectNotFoundException{

    //getMaxSearchSwipes()
//1.找到联系人列表集合
UiScrollable scroll=new UiScrollable(new UiSelector().className("android.widget.ListView"));
//2.找到以text为条件进行查找
UiObject text=new UiObject(new UiSelector().text("Jian1001"));
//3.滚动并查找textview(默认滚动30次)
scroll.scrollIntoView(text);
//5.点击
text.click();
//6.输出getMaxSearchSwipes()的默认滚动次数
System.out.println(scroll.getMaxSearchSwipes()); //setMaxSearchSwipes(int swipes)
//1.找到联系人列表集合
UiScrollable scroll1=new UiScrollable(new UiSelector().className("android.widget.ListView"));
//2.找到以text为条件进行查找
UiObject text1=new UiObject(new UiSelector().text("Jian1001"));
//3.设置最大滚动次数为3
scroll1.setMaxSearchSwipes(3);
//4.滚动并查找对象
scroll1.scrollIntoView(text1);
//5.点击
text1.click(); }

五、滑动区域校准常量设置与获取

1.校准概念
  • 校准常量指滑动操作坐标时候的偏移量,用来取偏移比例
2.相关API

返回值

API

说明

double getSwipeDeadZonePercentage() 默认常量值为0.1也就是10%区域不滑动
UiScrollable setSwieDeadZonePercentage(double swipeDeadZonePercentage) 设置一个不见的大小,在滑动时,视为无接触区的百分比(也就是不滑动区域的百分比)
  • 例如:
public void testDemo4() throws UiObjectNotFoundException{

    //1.找到联系人列表集合
UiScrollable scroll=new UiScrollable(new UiSelector().className("android.widget.ListView"));
//2.声明变量dead
double dead=scroll.getSwipeDeadZonePercentage();
//3.输出变量默认值(getSwipeDeadZonePercentage()的默认值)
System.out.println(dead);
//4.自定义(不滑动区域为20%)(setSwipeDeadZonePercentage())
scroll.setSwipeDeadZonePercentage(0.2); //如果加到0.5(50%)则不进行滑动变成点击操作了
//5.进行滑动操作
scroll.scrollForward(); }

六、向前与向后滚动

返回值

API

说明

boolean scrollBackward(int steps) 自定义步长向后(上)滚动
boolean scrollBackward() 以默认步长55向后(上)滚动
boolean scrollForward() 以默认步长55向前(下)滚动
boolean scrollForward(int steps) 自定义步长向前(下)滚动
  • 例如:
public void testDemo5() throws UiObjectNotFoundException{
//1.找到联系人列表集合
UiScrollable scroll=new UiScrollable(new UiSelector().className("android.widget.ListView"));
scroll.scrollForward();//默认向前(下)滚动
scroll.scrollForward(20);//自定义步长(20)向前(下)滚动
scroll.scrollBackward();//默认向后(上)滚动
scroll.scrollBackward(20);//自定义步长(20)向后(上)滚动
}

七、滚动到某个对象

1.相关API

返回值

API

说明

boolean scrollIntoView(UiSelector selector) 滚动到条件元素所在位置,并且尽量让其居于屏幕中央
boolean scrollIntoView(UiObject obj) 滚动到对象所在位置,并且尽量让其居于屏幕中央
boolean scrollTextIntoView(String text) 滚动到文本对象所在位置,并且尽量让其居于屏幕中央
boolean scrollDescriptionIntoView(String text) 滚动到描述所在位置,并且尽量让其居于屏幕中央
boolean scrollToBeginning(int maxSwipes) 自定义扫动次数滚动到开始位置(使用默认步长)
boolean scrollToBeginning(int maxSwipes,int steps) 自定义扫动次数与步长滚动到开始位置
boolean scrollToEnd(int maxSwipes,int steps) 自定义扫动次数与步长滚动到结束位置
boolean scrollToEnd(int maxSwipes) 自定义扫动次数滚动到结束位置(使用默认步长)
  • 例如:
public void testDemo6() throws UiObjectNotFoundException{

    //scrollIntoView(UiSelector selector)
//1.找到联系人列表集合
UiScrollable scroll=new UiScrollable(new UiSelector().className("android.widget.ListView"));
//2.使用UiSelector条件定位对象
UiSelector selector=new UiSelector().text("Jian1015");
//3.滚动操作
scroll.scrollIntoView(selector); //scrollIntoView(UiObject obj)
//1.找到联系人列表集合
UiScrollable scroll1=new UiScrollable(new UiSelector().className("android.widget.ListView"));
//2.使用UiObject条件定位对象
UiObject obj=new UiObject(new UiSelector().text("Jian1100"));
//3.滚动操作
scroll1.scrollIntoView(obj); //scrollTextIntoView(String text)
//1.找到联系人列表集合
UiScrollable scroll2=new UiScrollable(new UiSelector().className("android.widget.ListView"));
//2.通过文本进行滚动查找操作
scroll2.scrollTextIntoView("Jian1100"); //scrollDescriptionIntoView(String text)
//1.找到联系人列表集合
UiScrollable scroll3=new UiScrollable(new UiSelector().className("android.widget.ListView"));
//2.通过描述进行滚动查找操作
scroll3.scrollDescriptionIntoView("Jian1011的快速联系人照片"); //1.找到联系人列表集合
UiScrollable scroll4=new UiScrollable(new UiSelector().className("android.widget.ListView"));
//2.自定义扫动次数滚动到开始位置(使用默认步长)
scroll4.scrollToBeginning(5);
//3.自定义扫动次数滚动到结束位置(使用默认步长)
scroll4.scrollToEnd(5);
//4.自定义扫动次数与步长滚动到开始位置
scroll4.scrollToBeginning(5, 10);
//5.自定义扫动次数与步长滚动到结束位置
scroll4.scrollToEnd(5, 10);
}

八、设置滚动方向

1.相关API

返回值

API

说明

UiScrollable setAsHorizontalList() 设置滚动方向,设置为水平滚动
UiScrollable setAsVerticalList() 设置滚动方向,设置为纵向滚动
  • 例如:
public void testDemo7() throws UiObjectNotFoundException{

    //1.找到联系人列表集合(与前面滚动例子中的className不同)
UiScrollable scroll4=new UiScrollable(new UiSelector().className("android.widget.FrameLayout"));
//2.设置为水平滚动
scroll4.setAsHorizontalList();
//3.前(右)后(左)各滚动一次
scroll4.scrollForward();
sleep(2000);
scroll4.scrollBackward();
sleep(2000);
//4.设置为纵向滚动
scroll4.setAsVerticalList();
//5.前后各滚动一次
scroll4.scrollForward();
sleep(2000);
scroll4.scrollBackward();
sleep(2000); }

5.UiScrollable API 详细介绍的更多相关文章

  1. 7.Configurator API 详细介绍

    一.Configurator类介绍与API解释 1.Configurator类介绍 1)用于设置脚本动过的默认延时 2)功能 a.可调节两个模拟动作间的默认时间间隔 b.可调节输入文本的输入时间间隔 ...

  2. 2.UiSelector API 详细介绍

    一.UiSelector类介绍 //通过各种属性与节点关系定位组件 简单实例: public void testDemo2() throws UiObjectNotFoundException{ Ui ...

  3. 腾讯微博java(android)sdk新增微博api详细介绍

    本文主要介绍腾讯微博android sdk中新增微博有关的8个接口,以及使用的示例代码 注意:以下所有的api示例代码都需要先新建QqTSdkService类对象qqTSdkService并初始化,见 ...

  4. 6.UiWatcher API 详细介绍

    Tip: 1.监听器不是完能的,所以若用例需要设置监听器防止用例被打断,最好把延迟时间调高一点 2.UiDevice是不会触发监听功能的 3.监听器在方法体或者循环体中是程序还是会被打断的 4.监听器 ...

  5. 4.UiCollection API 详细介绍

    一.UiCollection类介绍 UiCollection类两大功能:从集合中查找对象:获取某种搜索条件组件的数量 1.UiCollection类说明 1)UiCollection是UiObject ...

  6. 1.UiDevice API 详细介绍

    1.UiDevice按键与keycode使用 返回值 方法名 说明 boolean pressBack() 模拟短按返回back键 boolean pressDPadCenter() 模拟按轨迹球中点 ...

  7. 3.UiObejct API 详细介绍

    一.点击与长按 1.组件区域位置关系: Rect 对象代表一个矩形区域:[left,Top][ARight,Bottom](即左上角图标到右下角图标) 2.点击与长按相关API: 返回值 API 说明 ...

  8. 百度地图API详细介绍

    <!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <t ...

  9. HTML5全屏(Fullscreen)API详细介绍

    // 整个页面 onclick=   launchFullScreen(document.documentElement); // 某个元素 launchFullScreen(document.get ...

随机推荐

  1. Linux内核学习笔记(6)-- 进程优先级详解(prio、static_prio、normal_prio、rt_priority)

    Linux 中采用了两种不同的优先级范围,一种是 nice 值,一种是实时优先级.在上一篇粗略的说了一下 nice 值和实时优先级,仍有不少疑问,本文来详细说明一下进程优先级.linux 内核版本为 ...

  2. 基于C#的机器学习--面部和动态检测-图像过滤器

    在本章中,我们将展示两个独立的例子,一个用于人脸检测,另一个用于动态检测,以及如何快速地将这些功能添加到应用程序中. 在这一章中,我们将讨论: 面部检测 动态检测 将检测添加到应用程序中 面部检测 人 ...

  3. Centos7 Zabbix添加主机、图形、触发器

    制作自定义key zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU.内存.磁盘.网卡等常规监控,只要新加主机关联此模板,就可自动 ...

  4. Python 代码调试技巧

    使用 pdb 进行调试 pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点.单步调试.进入函数调试.查看当前代码.查看栈片段.动态改变变 ...

  5. lambda(匿名函数)---基于python

    在学习python的过程中,lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda? 下面就上面的问题进行一下解答. 1.lambda是什么? ...

  6. 王者荣耀交流协会 - 第6次Scrum会议

    Scrum master :刘耀泽 补充:由于上次的scrum会议博客没有按时交上去,因此在这里给出上次scrum会议的链接: http://www.cnblogs.com/rensijia/p/76 ...

  7. YQCB冲刺周第二天

    YQCB冲刺周第二天 1.实现用户记账的功能 2.实现用户头像的设置 3.实现个人设置的功能 遇到的问题: 记账的分类,数据库存取图片,页面跳转+超链接的使用 团队讨论的照片:             ...

  8. iOS- 再谈ARC里内存问题,ARC里数组、对象内存得不到释放?

    1.前言      本来以为在改成ARC以后,不再需要考虑内存问题了,可是在实践中还是发现有一些内存问题需要注意,今天我不谈block的循环引用的问题,主要说说一些对象.数组不内存得不到释放的情况. ...

  9. python获取前几天的时间

    days的参数就是你想获取前多少天的数据,如果是昨天的话,则days=1 import datetime today=datetime.date.today() oneday=datetime.tim ...

  10. 团队作业05——测试与发布(alpha阶段)

    测试 请根据团队项目中软件的需求文档.功能说明.系统设计和测试计划,写出软件的测试过程和测试结果,并回答下述问题. 在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个? 显示计算结果超过看 ...