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 ...
随机推荐
- win7重装系统后设置Python2.7环境
起因 台式机的主板莫名出现问题,显示器画面卡顿不能动,鼠标键盘无反应,在这种情况下只好按住电源键断电.下面重启后,显示器无画面,猜测开机后没有进BIOS.然后就拆机箱,拔下电源线后撬起主板电池几秒再放 ...
- PowerDesigne 建立概念数据模型
本文主要介绍PowerDesigner概念数据模型以及实体.属性创建. 一.新建概念数据模型1)选择File-->New,弹出如图所示对话框,选择CDM模型(即概念数据模型)建立模型. 2)完成 ...
- python sys模块使用详情
python常用模块目录 sys模块提供了一系列有关Python运行环境的变量和函数.1.sys.argv可以用sys.argv获取当前正在执行的命令行参数的参数列表(list).变量解释sys.ar ...
- CF 1008B Turn the Rectangles(水题+贪心)
There are n rectangles in a row. You can either turn each rectangle by 90 degrees or leave it as it ...
- struts传值方式ModelDriven的使用
struts传值不需要用到request,struts会处理好. 1.不是面向对象直接在jsp页面和Java代码都写:name,password... 以下为面向对象 2.action类实现Model ...
- POJ 2484(对称博弈)
题目链接:http://poj.org/problem?id=2484 这道题目大意是这样的,有n个硬币围成一圈,两个人轮流开始取硬币(假设他们编号从1到n),可以选择取一枚或者取相邻的两枚(相邻是指 ...
- ARP 攻击
场景 A攻击者 192.168.1.3 00:00:00:00:00:01 B受害者 192.168.1.2 00:00:00:00:00:02 C路由器 192.168.1.1 00:00:00:0 ...
- Traffic Steering for Service Function Chaining
Introduction 目前通过vlan标签来把流量引向对应的sfc 以前的sfc静态(SFs相邻组成SFC),有了sdn之后具有动态性.(SFs不需要彼此相邻.将流量动态地导向所需的SFs.) 流 ...
- javascript与浏览器学习(一)
待学习………… 20160421 标题:JavaScript中浏览器兼容问题 博客地址:http://www.cnblogs.com/DF-fzh/p/5408241.html 简单 ...
- Alpha-9
前言 失心疯病源9 团队代码管理github 站立会议 队名:PMS 530雨勤(组长) 今天完成了那些任务 熬夜肝代码 代码签入github 明天的计划 最好能够完成对接环节 准备展示内容 还剩下哪 ...