5.UiScrollable API 详细介绍
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 详细介绍的更多相关文章
- 7.Configurator API 详细介绍
一.Configurator类介绍与API解释 1.Configurator类介绍 1)用于设置脚本动过的默认延时 2)功能 a.可调节两个模拟动作间的默认时间间隔 b.可调节输入文本的输入时间间隔 ...
- 2.UiSelector API 详细介绍
一.UiSelector类介绍 //通过各种属性与节点关系定位组件 简单实例: public void testDemo2() throws UiObjectNotFoundException{ Ui ...
- 腾讯微博java(android)sdk新增微博api详细介绍
本文主要介绍腾讯微博android sdk中新增微博有关的8个接口,以及使用的示例代码 注意:以下所有的api示例代码都需要先新建QqTSdkService类对象qqTSdkService并初始化,见 ...
- 6.UiWatcher API 详细介绍
Tip: 1.监听器不是完能的,所以若用例需要设置监听器防止用例被打断,最好把延迟时间调高一点 2.UiDevice是不会触发监听功能的 3.监听器在方法体或者循环体中是程序还是会被打断的 4.监听器 ...
- 4.UiCollection API 详细介绍
一.UiCollection类介绍 UiCollection类两大功能:从集合中查找对象:获取某种搜索条件组件的数量 1.UiCollection类说明 1)UiCollection是UiObject ...
- 1.UiDevice API 详细介绍
1.UiDevice按键与keycode使用 返回值 方法名 说明 boolean pressBack() 模拟短按返回back键 boolean pressDPadCenter() 模拟按轨迹球中点 ...
- 3.UiObejct API 详细介绍
一.点击与长按 1.组件区域位置关系: Rect 对象代表一个矩形区域:[left,Top][ARight,Bottom](即左上角图标到右下角图标) 2.点击与长按相关API: 返回值 API 说明 ...
- 百度地图API详细介绍
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...
- HTML5全屏(Fullscreen)API详细介绍
// 整个页面 onclick= launchFullScreen(document.documentElement); // 某个元素 launchFullScreen(document.get ...
随机推荐
- 4.openldap创建索引
1.索引的意义 提高对Openldap目录树的查询速度 提高性能 减轻对服务器的压力 2.搜索索引 ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn= ...
- 大数据-spark-hbase-hive等学习视频资料
不错的大数据spark学习资料,连接过期在评论区评论,再给你分享 https://pan.baidu.com/s/1ts6RNuFpsnc39tL3jetTkg
- 全国城市一卡通一级TSM平台业务架构及意义
[导读]TSM平台是一种具有鲜明行业属性的平台,因此,各行业都建立了本行业的TSM平台.为促进城市一卡通行业移动支付的快速发展,住房和城乡建设部也建立了全国城市一卡通行业一级TSM平台. 作为住建部标 ...
- Arctic Network POJ 2349 (最小生成树思想)
Description The Department of National Defence (DND) wishes to connect several northern outposts by ...
- 《JavaScript》JS中的常用方法attr(),splice()
1.jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr(),attr()有4个表达式. attr(属性名) ...
- Linux 安装php扩展 swoole
swoole是一个PHP的异步.并行.高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncT ...
- vue+vue-video-player实现弹窗播放视频
将视频播放器标签放在对话框标签中,实现弹窗 template 中 <el-dialog :visible.sync="dialogVisible" width='680px' ...
- sql数据库表容量
标题:SQL Server 的最大容量规范 数据库的文件大小,文件数量都有限制. 表的大小也有限制,如果表过大,查询效率就会下降,考虑对数据进行分割,对历史数据进行独立存储.
- C++ Primer Plus学习:第十四章
第十四章 C++中的代码重用 包含对象成员的类 将类的对象作为新类的成员.称为has-a关系.使用公有继承的时候,类可以继承接口,可能还有实现(纯虚函数不提供实现,只提供接口).使用包含时,可以获得实 ...
- SQL Server 一些操作语句
查询表结构---sp_help 表名 或 sp_columns 表名 删表 -------drop table 表名删表中所有的数据----------truncate table 表名根据条件删表 ...