7.Configurator API 详细介绍
一、Configurator类介绍与API解释
1.Configurator类介绍
1)用于设置脚本动过的默认延时
2)功能
a.可调节两个模拟动作间的默认时间间隔
b.可调节输入文本的输入时间间隔
c.可调节每次滚动的时间间隔
2.相关API
|
延时项 |
默认延时 |
功能描述 |
API |
| 动作 | 3s | 设置延时 | setActionAckonwledgmentTimeout(long timeout) |
| 获取默认延时 | getActionAckonwledgmentTimeout() | ||
| 键盘输入 | 0s | 设置延时 | setKeyInjectionDelay(long delay) |
| 获取默认延时 | getKeyInjectionDelay() | ||
| 滚动 | 200ms | 设置延时 | setScrollAcknowledgmentTimeout(long timeout) |
| 获取默认延时 | getScrollAcknowledgmentTimeout() | ||
| 空闲 | 10s | 设置延时 | setWaitForIdleTimeout(long timeout) |
| 获取默认延时 | getWaitForIdleTimeout() | ||
| 查找组件 | 10s | 设置延时 | setWaitForSelectorTimeout(long timeout) |
| 获取默认延时 | getWaitForSelectorTimeout() |
例如:
public void testDemo1() throws UiObjectNotFoundException{
//1.ActionAckonwledgmentTimeout()
long action=Configurator.getInstance().getActionAcknowledgmentTimeout();
//输出默认延时
System.out.println("动作默认延时为: "+action);
//获取屏幕高度和宽度
int y=UiDevice.getInstance().getDisplayHeight();
int x=UiDevice.getInstance().getDisplayWidth();
//默认延时下动作间隔时间感受
UiDevice.getInstance().swipe(x-10, y/2, x-200, y/2, 10);
UiDevice.getInstance().swipe(x-10, y/2, x-200, y/2, 10);
sleep(2000);
//设置延时
Configurator.getInstance().setActionAcknowledgmentTimeout(100000);
//使用设置延时下动作间隔时间感受
UiDevice.getInstance().swipe(x-10, y/2, x-200, y/2, 10);
UiDevice.getInstance().swipe(x-10, y/2, x-200, y/2, 10);
//使用完毕后调回默认延时,切记!!!
Configurator.getInstance().setActionAcknowledgmentTimeout(action);
//2.KeyInjectionDelay()'
long print=Configurator.getInstance().getKeyInjectionDelay();
//输出键盘输入默认延时
System.out.println("键盘输入默认延时为: "+print);
//获取输入框
UiObject set=new UiObject(new UiSelector().resourceId("com.android.mms:id/embedded_text_editor"));
//感受默认延时下输入间隔
set.setText("aabbccd");
sleep(2000);
set.clearTextField();
//修改默认延时为1秒
Configurator.getInstance().setKeyInjectionDelay(1000);
//感受修改延时后输入间隔
set.setText("aabbccd");
sleep(2000);
set.clearTextField();
//切记改回原始时间
Configurator.getInstance().setKeyInjectionDelay(print);
//3.ScrollAcknowledgmentTimeout()
long scroll=Configurator.getInstance().getScrollAcknowledgmentTimeout();
//输出默认延时
System.out.println("滚动默认延时: "+scroll);
//获取列表集合
UiScrollable scroll1=new UiScrollable(new UiSelector().className("android.widget.ListView"));
//感受默认滚动延时间隔
scroll1.flingToEnd(5);
//设置默认滚动时间间隔为2S
Configurator.getInstance().setScrollAcknowledgmentTimeout(2000);
//感受设置后的滚动时间间隔
scroll1.flingToEnd(5);
//切记使用完毕改回为默认时间间隔
Configurator.getInstance().setScrollAcknowledgmentTimeout(scroll);
//4.WaitForIdleTimeout()
long wait=Configurator.getInstance().getWaitForIdleTimeout();
System.out.println("空闲默认延时为: "+wait);
//5.WaitForSelectorTimeout()
long selector=Configurator.getInstance().getWaitForSelectorTimeout();
//输出默认时间间隔
System.out.println("查找组件默认延时为 :"+selector);
//随意查找一个对象
UiScrollable scroll2=new UiScrollable(new UiSelector().className("11321"));
scroll2.click();
//修改默认时间间隔
Configurator.getInstance().setWaitForSelectorTimeout(1000);
//感受修改后的时间间隔
UiScrollable scroll3=new UiScrollable(new UiSelector().className("11321"));
scroll3.click();
}
3.实例演示
1)模拟双击与快速多单击动作
//声明方法
public void quicklyClick(int num,int x,int y){
//获取动作间隔时间
long actionTime=Configurator.getInstance().getActionAcknowledgmentTimeout();
//设置动作间隔时间
Configurator.getInstance().setActionAcknowledgmentTimeout(0);
//设置操作步骤
for(int i=0;i<=num;i++){
UiDevice.getInstance().click(x, y);
}
//最后别忘了恢复默认时间间隔,避免影响后面其他的用例
Configurator.getInstance().setActionAcknowledgmentTimeout(actionTime);
}
//调用方法
public void testDemo2(){
//获取屏幕高和宽
int y=UiDevice.getInstance().getDisplayHeight();
int x=UiDevice.getInstance().getDisplayWidth();
//调用上面声明的方法体
quicklyClick(4, x/2,y/2);
}
2)使用keyCode快速输入
//设置方法
public void quicklyKeyCode(String input){
//获取动作间隔时间
long action=Configurator.getInstance().getActionAcknowledgmentTimeout();
//设置动作间隔时间
Configurator.getInstance().setActionAcknowledgmentTimeout(1);
//方法中用到的数字来自androidKeyCode表
for (int i=0;i<input.length();i++){
char c=input.charAt(i);
//判断输出
if (c>48&&c<=57){
UiDevice.getInstance().pressKeyCode(c-41);
}else if(c>=97&&c<=122){
UiDevice.getInstance().pressKeyCode(c-68);
}else if (c>=65&&c<=90){
UiDevice.getInstance().pressKeyCode(c-36,1);
}
}
//千万别忘记恢复默认
Configurator.getInstance().setActionAcknowledgmentTimeout(action);
}
//调用方法
public void testDemo3(){
quicklyKeyCode("Jian110");
}
7.Configurator API 详细介绍的更多相关文章
- 腾讯微博java(android)sdk新增微博api详细介绍
本文主要介绍腾讯微博android sdk中新增微博有关的8个接口,以及使用的示例代码 注意:以下所有的api示例代码都需要先新建QqTSdkService类对象qqTSdkService并初始化,见 ...
- 6.UiWatcher API 详细介绍
Tip: 1.监听器不是完能的,所以若用例需要设置监听器防止用例被打断,最好把延迟时间调高一点 2.UiDevice是不会触发监听功能的 3.监听器在方法体或者循环体中是程序还是会被打断的 4.监听器 ...
- 5.UiScrollable API 详细介绍
Tip: 1.扫动过程中如果界面停留在滚动条的中间部分会先回到起点再进行滚动 2.扫动过程中设置的步长长短决定划过内容的多少,步长越长滑过的内容就越少:步长越短划过的内容就越长 一.UiScrolla ...
- 4.UiCollection API 详细介绍
一.UiCollection类介绍 UiCollection类两大功能:从集合中查找对象:获取某种搜索条件组件的数量 1.UiCollection类说明 1)UiCollection是UiObject ...
- 2.UiSelector API 详细介绍
一.UiSelector类介绍 //通过各种属性与节点关系定位组件 简单实例: public void testDemo2() throws UiObjectNotFoundException{ Ui ...
- 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 ...
随机推荐
- 搭建Git工作环境
为什么要做版本控制? 在平时的工作中,经常会遇到写文档的事情,而写文档基本都不会一蹴而就,总是会修修改改很多次,而版本控制能够记录每次修改的版本,能够进行回溯.有很多版本控制工具,但是作为一个程序员, ...
- oracle selinux 问题
Error: cannot restore segment prot after reloc: Permission Denied http://www.oracledistilled.com/ora ...
- txt文件存储问题
一.实际大小与占用空间不一致: 1.占用空间和磁盘有关,一般磁盘存储最小大小为4kb(4096字节). 2.当txt文件中仅有1个数字‘5’的时候,大小显示为1个字节(属性看,列表详细不精确),占用空 ...
- 实现Spring管理struts的Action
struts2和spring的整合,关键点在于struts2中的action要纳入spring容器的管理中成为一个bean. 可以在struts2中配置: <struts> ...
- DB2 V9 默认帐户信息和服务启动信息
1 dasusr1 DB2 管理服务器用户是管理DAS(Database Adminitrator Service).要完全适用db2 cc 必须启动DAS.DB2 管理服务器(DAS)响应来自 DB ...
- 爬虫学习之-urlparse之urljoin()
首先导入模块,用help查看相关文档 >>> from urlparse import urljoin >>> help(urljoin) Help on func ...
- [Google] 看雪论坛: 安卓碎片化的情况
2018年10月28日早间消息,谷歌方面发布了Android各版本的最新份额数据,截止到10月26日.即便是已经推出3个月了,Android 9 Pie系统的用户数仍旧没有超过0.1%,导致未出现在榜 ...
- python判断字符串是否包含子字符串
python的string对象没有contains方法,不可以使用string.contains的方法判断是否包含子字符串,但是python有更简单的方法来替换contains函数 python的st ...
- Vue 取出记录数后,页面显示刚开始显示部分,点击更多显示全部
实例的实现,是使用computed计算属性,还有对数组使用.slice函数,不改变原数据对象. <div id="app"> <ul> <li v-f ...
- 一个Vue实例-添加、显示列表、删除
<link href="~/Content/css/bootstrap-theme.min.css" rel="stylesheet" /> < ...