5.UiScrollable API 详细介绍

Tip:

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

一、UiScrollable 类介绍

1.UiScrollable类说明

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

二、快速滚动

1.滚动相关概念

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

2.快速滚动相关API

返回值

API

说明

booleanflingBackward()以步长为5(默认值)快速向上(后)滑动
booleanflingForward()以步长为5(默认值)快速向下(前)滑动
booleanflingToBeginning(int maxSwipes)自定义扫动次数以步长为5(默认值)快速滑动到开始
booleanflingTuEnd(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

说明

UiObjectgetChildByDescription(UiSelector childPattern,String text,boolean allowScrollSearch)是否允许滚动查找获取具备UiSelector条件元素集合后再以文本描述条件查找对象
UiObjectgetChildByDescription(UiSelector childOattern,String text)默认获取具备UiSelector条件的元素集合后再以文本描述条件查找对象
UiObjectgetChildByInstance(UiSelector childPattern,int instance)获取具备UiSelector条件的子集,再从子集中按照实例筛选想要的元素(不滚动)
UiObjectgetChildByText(UiSelector childPattern,String text,boolean allowScrollSearch)是否允许滚动获取具备UiSelector条件的元素集合后再以文本条件查查找对象
UiObjectgetChildByText(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

说明

intgetMaxSearchSwipes()获取执行搜索滑动过程中的最大滑动次数,默认常量为30 (若30次找不到则报错)
UiScrollablesetMaxSearchSwipes(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.设置最大滚动次数为3scroll1.setMaxSearchSwipes(3);//4.滚动并查找对象
    scroll1.scrollIntoView(text1);//5.点击
    text1.click();}

 

 

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

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

返回值

API

说明

doublegetSwipeDeadZonePercentage()默认常量值为0.1也就是10%区域不滑动
UiScrollablesetSwieDeadZonePercentage(double swipeDeadZonePercentage)设置一个不见的大小,在滑动时,视为无接触区的百分比(也就是不滑动区域的百分比)

 

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

 

 

六、向前与向后滚动

返回值

API

说明

booleanscrollBackward(int steps)自定义步长向后(上)滚动
booleanscrollBackward()以默认步长55向后(上)滚动
booleanscrollForward()以默认步长55向前(下)滚动
booleanscrollForward(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

说明

booleanscrollIntoView(UiSelector selector)滚动到条件元素所在位置,并且尽量让其居于屏幕中央
booleanscrollIntoView(UiObject obj)滚动到对象所在位置,并且尽量让其居于屏幕中央
booleanscrollTextIntoView(String text)滚动到文本对象所在位置,并且尽量让其居于屏幕中央
booleanscrollDescriptionIntoView(String text)滚动到描述所在位置,并且尽量让其居于屏幕中央
booleanscrollToBeginning(int maxSwipes)自定义扫动次数滚动到开始位置(使用默认步长)
booleanscrollToBeginning(int maxSwipes,int steps)自定义扫动次数与步长滚动到开始位置
booleanscrollToEnd(int maxSwipes,int steps)自定义扫动次数与步长滚动到结束位置
booleanscrollToEnd(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

说明

UiScrollablesetAsHorizontalList()设置滚动方向,设置为水平滚动
UiScrollablesetAsVerticalList()设置滚动方向,设置为纵向滚动

 

  • 例如:
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);}

转载于:https://www.cnblogs.com/JianXu/p/5225008.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

delphi读取xml中的内容property name传递参数_Python 进阶知识全篇-XML 解析

什么是 XML?XML 指可扩展标记语言(eXtensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。 你可以通过本站学习 XML 教程XML 被设计用来传输和存储数据。XML 是一套定…

c语言getline读取一行命令行,如何从文件的特定行中获取getline()? C ++

这个问题非常不清楚。您如何确定具体线?如果是第n行,最简单的解决方案就是调用getlinen次,扔掉除最后一个结果以外的所有结果;呼唤ignoren-1次可能会快一点,但我怀疑如果您总是读入相同的字符串(而不是构造一个每次都更…

12.UiAutomator 获取系统信息

一、Build构建信息 1.build类: Build类提供了硬件厂商、编号、序列号、SDK版本等重要信息。 类名:android.os.Build 常量名 说明 BOARD底层板名称BOOTLOADERBootloader版本号BRAND品牌CPU_ABICPU指令集CPU_ABI2CPU第二指令集DEVICE工业设计名称DISPLAY显…

c语言编写网页图形界面代码,「分享」C语言如何编写图形界面

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面。大家也都有回答,需要其他的库。MFC,GTK,QT。本人近期刚用GTK库加上纯C写成了第一个LINUX实用程序。现在与大…

python 读取word_教你怎么使用 Python 对 word文档 进行操作

使用Python对word文档进行操作一、安装Python-docxPython-docx是专门针对于word文档的一个模块,只能读取docx 不能读取doc文件。说白了,python就相当于windows操作系统,QQ就是跑在windows操作系统上的软件,QQ最大的作用是可以去聊…

[国嵌攻略][084][信号同步编程]

进程同步 一组并发进程进行相互合作、相互等待,使得各进程按一定的顺序执行的过程称为进程间的同步。 进程同步与进程互斥 进程同步问题的关键在于生产者不需要获取信号量,消费者不需要释放信号量,所以信号量的初值设置为0。但是进程互斥问题…

android 控件覆盖关系,安卓子控件抢占父控件点击事件或者焦点问题

开发中很常见的一个问题,项目中的lListview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有…

stm32cubemx adc_STM32CubeMX__Exp5_ADC1_2CH_DMA_TIM3_Trig__简明指导文件__jyb

用定时器TIM3触发DMA方式的双通道ADC定时采样:拷贝STM32CubeMX工程文件LED_Flash_PC12.ioc,修改为:Exp5_ADC1_2CH_DMA_TIM3_Trig.ioc(1)配置ADC1的通道和参数配置ADC通道参数(2)配置ADC1的DMA①通过点"Add"按钮,添加ADC…

JS 实现 jQuery的$(function(){});

1、浏览器渲染引擎的HTML解析流程 何谓“渲染”,其实就是浏览器把请求到的HTML内容显示出来的过程。渲染引擎首先通过网络获得所请求文档的内容,通常以8K分块的方式完成。下面是渲染引擎在取得内容之后的基本流程: 1,解析html以构…

linux ora-00031,kill session遇到ORA-00031錯誤

今天在處理一個表被鎖死的問題時,遇到ORA-00031: 這個階段作業將被標示為要終結的階段作業具體操作步驟如下:1. 先確認鎖定資源的session信息select OS_USER_NAME,s.MACHINE ,object_name as對象名稱,s.sid,s.serial#,p.spid as系統進程號from v$locked_…

html 分页_MySQL——优化嵌套查询和分页查询

Java识堂,一个高原创,高收藏,有干货的微信公众号,欢迎关注优化嵌套查询嵌套查询(子查询)可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。嵌套查询写起来简单,也…

从原理上搞定编码-- Base64编码

开发者对Base64编码肯定很熟悉,是否对它有很清晰的认识就不一定了。实际 上Base64已经简单到不能再简单了,如果对它的理解还是模棱两可实在不应该。大概介绍一下Base64的相关内容,花几分钟时间就可以彻底理解它。文 章下边贴了一个Base64的编…

android 点击选择文件夹,Android----弹出框选择文件夹目录以及启用新Task打开文件_IT168文库.pdf...

Android弹弹 出出框框 选选择择 文文件件 夹夹 目目录录 以以及及 启启用用新新 的的T ask打打 开开文文件件首首先先看看效效果果 图图第第一一个个 Act iv it y很很简简单单就就 一一个个按按钮钮 But t o n 加加一一个个 T ext View见见 main.xm l[[ cc -- ss hh aa rr pp ]…

docker mysql总是退出_Docker提升测试效率之路

现如今,Docker已经成为了很多公司部署应用、服务的首选方案。依靠容器技术,我们能在不同的体系结构之上轻松部署几乎任何种类的应用。作为测试一方,我们应与时俱进,将Docker容器技术应用到测试工作中。为了让小伙伴们可以快速上手…

2016030206 - mysql常用命令

参考地址如下: http://www.cnblogs.com/linjiqin/archive/2013/03/01/2939384.html http://www.cnblogs.com/zhangzhu/archive/2013/07/04/3172486.html 用户登陆 mysql> mysql -u 用户名 -p 密码;  例子: mysql>mysql -u root -p; 输…

32位mysql安装包_软件测试基础——Linux系统搭建MySQL数据库

一、mysql下载1. 下载:官方网址:https://dev.mysql.com/downloads/mysql/2. 选择相应的版本,由于cenos是基于红帽的,所以Select Operating System选择Red Hat...。我所用的镜像为cenos7所以Red Hat....linux7,一定要选相应的版本&…

android webview 获取 title,【报Bug】app webview 安卓机 title显示问题

// #ifdef APP-PLUSvar that this;that.statusBarHeight uni.getSystemInfoSync().statusBarHeight;var w plus.webview.create(this.weburl, id, {// top: uni.getSystemInfoSync().statusBarHeight 44 ,//放置在titleNView下方。如果还想在webview上方加个地址栏的什么的…

easyphp环境配置

apache的配置文件httpd.conf // apache/conf //修改http.conf这个文件的编辑权限 <Directory /> Options All AllowOverride All Order deny,allow Allow from all </Directory> LoadModule php5_module "E:/PROGRA~1/EASYPH~1.9/php/php539x141026161807/ph…

android wifi 组播,在Android上显示实时UDP或RTP流(多播)

我已经尝试从播放器(Daroon播放器&#xff0c;PlayStore)读取它&#xff0c;它运行良好&#xff0c;所以我认为我的愚蠢问题不是由于广播 .我看到可以通过不同的方式向用户显示视频内容&#xff1a;在ACTION_VIEW中使用新的Intent&#xff0c;Android会选择可以查看内容的应用程…

python gevent模块 下载_Python中的多任务,并行,并发,多线程,多进程,协程区别...

多任务CPU承担了所有的计算任务。一个CPU在一个时间切片里只能运行一个程序。当我们想同时运行多于一个程序的时候&#xff0c;就是多任务&#xff0c;例如同时运行微信&#xff0c;QQ&#xff0c;浏览器等等。多任务的目的是提升程序的执行效率&#xff0c;更充分利用CPU的资源…