UiScrollable主要包括以下几个方面的方法:

  1.快速滚动

  2.获取列表子元素

  3.获取与设置最大滚动次数常量值

  4.滑动区域校准常量设置与获取

  5.先前与向后滚动

  6.滚动到某个对象

  7.设置滚动方向

它的主要继承关系如下图:

  

使用时的基本格式如下:

  UiScrollable 对象名 = new UiScrollable(new UiSelector().选择对象条件)

  对象名.操作函数

快速滚动方面的方法:

  举例:

  UiScrollable listScrollable = new UiScrollable(new UiSelector().scrollable(true));

  listScrollable.flingToEnd()2; //只滑动两次快速滑动到结尾

  1.public boolean flingBackward() 以步长为5快速向后滑动

  2.public boolena flingForward() 以步长为5快速向前滑动

  3.public boolean flingToBeginning(int maxSwipes) 自定义扫动次数以步长为5快速滑动到开启

  4.public boolean flingToEnd(int maxSwipes) 自定义扫动次数以步长为5快速滑动到结束

获取列表子元素:

  举例:

  UiScrollable listScrollable = new UiScrollable(new UiSelector().scrollable(true)); //获取滚动元素对象

  UiObject chinaMobileObject = listScrollable.getChildByDescription(new UiSelector().className("android.widget.TextView"), "10086", false);

  chinaMobileObject.clickAndWaitForNewWindow(); //点击等待新界面出现

  1.public UiObject getChildByDescription(UiSelector childPattern, String text, boolean allowScrollSearch)

    是否允许滚动查找获取具备UiSelector条件与文本描述条件的UiObject对象

  2.public UiObject getChildByDescription(UiSelector childPattern, String text)

    默认滚动获取具备UiSelector条件与文本描述条件的UiObject对象

  3.public UiObject getChildByInstance(UiSelector childPattern, int instance)

    获取具备UiSelector条件的子集,再从子集中按照实际筛选想要的元素(不滚动)

  4.public getChildByText(UiSelector childPattern, String text, boolean allowScrollSearch)

    是否允许滚动获取具备UiSelector条件与文本条件的UiObject对象

  5.public getChildByText(UiSelector childPattern, String text)

    默认滚动获取具备UiSelector条件与文本条件的UiObject对象

获取与设置最大滚动次数常量值的方法:

  举例:

  UiScrollable listScrollable = new UiScrollable(new UiSelector().scrollable(true));

  listScrollable.setMaxSearchSwipes(10);

  listScrollable.scrollTextIntoView("About tablet");

  1.public int getMaxSearchSwipes()

    获取执行搜索滑动过程中的最大滑动次数,默认常量为30

  2.public UiScrollable setMaxSearchSwipes(int swipes)

    设置最大可扫动次数

滑动区域校准常量设置与获取的方法:

  校准常量指的是:滑动操作坐标时的偏移量,用来取偏移比例。

  举例:

  int swipeAreaAdjuct  = (int)(rect.height() *getSwipeDeadZonePercentage()); //计算坐标偏移量

  downX = rect.centerX();

  downY = rect.top + swipeAreaAdjust;

  upX = rect.centerX();

  upY = rect.bottom - swipeAreaAdjust;

  1.public double getSwipeDeadZonePercentage()

    默认常量值为0.1,10%

  2.public UiScrollable setSwipeDeadZonePercentage(double swipeDeadZonePercentage)

    设置一个部件的大小,在滑动时,视为无接触区的百分比。

向前与向后滚动方面的方法:

  举例:

  UiScrollable listScrollable =  new UiScrollable(new UiSelector().scrollable(true));

  listScrollable.scrollBackward(10); //向后滚动

  1.public boolean scrollBackward(int steps)

    自定义步长向后滑动

  2.public boolean scrollBackward()

    以默认步长55向后滑动

  3.public boolean scrollDescriptionIntoView(String text)

    滑动到描述所在位置,并且尽量让它居于屏幕中央

  4.public boolean scrollForward()

    以默认步长55向前滚动

  5.public boolean scrollForward(int steps)

    自定义步长向前滚动

滚动到某个对象方面的方法:

  举例:

  UiScrollable listScrollable = new UiScrollable(new UiSelector().scrollable(true));

  listScrollable.scrollDescriptionIntoView("About tablet");

  1.public boolean scrollIntoView(UiSelector)

    滚动到条件元素所在的位置,并且尽量让其居于屏幕中央

  2.public boolean scrollIntoView(UiObject obj)

    滚动到对象所在位置,并且尽量让其居于屏幕中央

  3.public boolean scrollTextIntoView(String text)

    滚动到文本对象所在位置,并且尽量让其居于屏幕中央

  4.public boolean scrollToBeginning(int maxSwipes)

    滚动到开始位置

  5.public boolean scrollToBeginning(int masSwipes, int steps)

    自定义扫动距离与步长,滚动到开始位置

  6.public boolean scrollToEnd(int maxSwipes, int steps)

    自定义扫动距离与步长,滚动到结束位置

  7.public boolean scrollToEnd(int maxSwipes)

    自定义扫动距离,滚动到结束位置

设置滚动方向的方法:

  举例:

  UiScrollable listScrollable = new UiScrollable(new UiSelector().scrollable(true));

  listScrollable.setAsHorizontalList(); // 设置横向滚动

  listScrollable.scrollForward(); //往前滚动一次

  listScrollable.setAsVerticalList(); //设置纵向滚动

  listScrollable.scrollTextIntoView("My favourite");

  1.public UiScrollable setAsHorizontalList()

    设置滚动方向为水平滚动

  2.public UiScrollable setAsVerticalList()

    设置滚动方向为纵向滚动

以上博客参考自:

http://wenku.baidu.com/view/90ea92e3240c844769eaeec5.html?re=view

Android自动化测试Uiautomator--UiScrollable接口简介的更多相关文章

  1. 【转】Android自动化测试(UiAutomator)——UiObject

    本文主要讲解使用UiAutomator的一些技巧,希望对于初学者有一定的帮助 UiObject 1.首先要声明对象 UiObject XXX = new UiObject(new Selector) ...

  2. Android自动化测试-UiAutomator2环境搭建

    Android自动化测试-UiAutomator环境搭建(QQ交流群:490451176) 一.环境准备 1. 安装android sdk,并配置环境变量 2. 安装android studio,国内 ...

  3. Android自动化测试框架UIAutomator原理浅析

    UIAutomator是一个Android自动化测试框架,是谷歌在Android4.1版本发布时推出的一款用Java编写的UI测试框架,它只能用于UI即黑盒方面的测试.所以UIAutomator只能运 ...

  4. 【转】Android自动化测试(UiAutomator)简要介绍

    一.一个BUG引发的问题   如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”.这个问题我们如何验证呢?我想,最好的方式应该是自动化测试.    那么,自动化测试可以完成哪些任务呢?  ...

  5. Android自动化测试(UiAutomator)

    一.一个BUG引发的问题   如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”.这个问题我们如何验证呢?我想,最好的方式应该是自动化测试.    那么,自动化测试可以完成哪些任务呢?  ...

  6. Android自动化测试-Robotium(一)简介

    一.Robotium原理 Robotium是一款Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击.长按.滑动等).查找和断言机制的API ...

  7. 几种常见的Android自动化测试框架及其应用

    随着Android应用得越来越广,越来越多的公司推出了自己移动应用测试平台.例如,百度的MTC.东软易测云.Testin云测试平台…….由于自己所在项目组就是做终端测试工具的,故抽空了解了下几种常见的 ...

  8. 解放双手——Android自动化测试

    解放程序猿宝贵的右手(或者是左手) http://blog.csdn.net/eclipsexys/article/details/45622813 --Android自动化测试技巧 Google大神 ...

  9. Android自动化测试学习路线

    最近在整理Android自动化测试的相关资料,大体上把一些知识点梳理了,这里做一个简单的分享! Android里面测试相关的工具和框架太多了.你应该从以下几个方面入手. 编程语言的选择 如果你要学习的 ...

  10. Android 自动化测试

    Python +Android +uiautomator test  在init中定义的方法 uiautomator     该模块是android的一个python包装uiautomator测试框架 ...

随机推荐

  1. Xor-MST Codeforces - 888G

    https://codeforces.com/contest/888/problem/G 这题可以用Boruvka算法: 一开始每个点是一个连通块.每次迭代对于每个连通块找到其最近邻居(与其有边相连且 ...

  2. 关于JVM的一些东西

    1.在JDK1.6(HotSpot虚拟机)及之前,运行时常量池(属于方法区的一部分)是永久代的,而在JDK1.7之后运行时常量池(里面用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后进 ...

  3. JAVA常用知识总结(八)——计算机网络

    GET 和 POST 的区别? get参数通过url传递,post放在request body中. get请求在url中传递的参数是有长度限制的,而post没有. get比post更不安全,因为参数直 ...

  4. 新生代内存中为什么要有两个survivor区

    首先是关于新生代中的内存分布的描述: 新生代中的对象都是“朝生夕死”的对象,所以每次gc存活的对象很少,于是在新生代中采用的垃圾回收算法是“复制算法”. 将新生代的内存分为一块较大的Eden区域和两块 ...

  5. [已读]CSS禅意花园

    蛮早的一本书,提到了一些小tip,比如负margin实现居中.FIR图像替换.

  6. wmq的队伍 BIT优化dp

    http://oj.xjtuacm.com/problem/14/ wmq的队伍 发布时间: 2017年4月9日 17:06   最后更新: 2017年4月9日 17:07   时间限制: 2000m ...

  7. 《深入理解java虚拟机》笔记(1)运行时数据区域

    1.Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来. 2.运行时数据区域划分 java虚拟机在执行java程序的过程中会把它所管理的内存划 ...

  8. @RequestParam和@ResponseBody注解的区别(转)

    @RequestParam 用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容.(Http协议中,如果不指定Content-Type, ...

  9. PaaS优点与限制(3)

    PaaS优点与限制(3) PaaS学习笔记目录 PaaS基础学习(1) 在PaaS上开发Web.移动应用(2) PaaS优点与限制(3) 13. PaaS的核心服务 核心服务是指提供数据存储.SQl. ...

  10. Android 面试总结~~~

    一.面试中的问题 通过这几天的面试,总结了自己在面试过程中问到的问题,部分问题已经给出了答案,还有部分问题,还未有时间整理出来. ListView出现闪图.图片错乱原因解决方案 函数式编程 (Lamb ...