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 ...
随机推荐
- linux同步软件
linux同步软件:scp,rsync,inotify,sersync 1.scp: scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ssh,并且和ssh 使用相同的认证方式 ...
- Python爬虫入门(7):正则表达式
下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的一种公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串” ...
- 关于js中一个对象当做参数传递是按值传递还是按引用传递的个人看法
在<JavaScript高级程序设计>这本书中有这样一段话:有很多开发人员错误的认为:在局部作用域中修改的对象会在全局作用域中反映出来,就说明参数是按引用传递的.换句话说,尼古拉认为当一个 ...
- B. Counting-out Rhyme(约瑟夫环)
Description n children are standing in a circle and playing the counting-out game. Children are numb ...
- FivePlus——分工理解
最终的游戏方案 游戏采用回合制,每回合双方英雄各自轮流选择移动和攻击以及大招,选择结束进行结算 英雄/小兵/塔的攻击力/大招效果参照作业要求,如果发现不均衡再进行调整 UI界面考虑使用QT或者命令行界 ...
- android入门 — 多线程(一)
android中的一些耗时操作,例如网络请求,如果不能及时响应,就会导致主线程被阻塞,出现ANR,非常影响用户体验,所以一些耗时的操作,我们会想办法放在子线程中去完成. android的UI操作并不是 ...
- SpringBoot与Swagger2整合
一.Swagger简介与优势 相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还为了以后交接方便,都有要求写API文档. Swa ...
- 类的static成员变量和成员函数能被继承吗
1. 父类的static变量和函数在派生类中依然可用,但是受访问性控制(比如,父类的private域中的就不可访问),而且对static变量来说,派生类和父类中的static变量是共用空间的,这点 ...
- virsh 命令行管理虚拟机
重用命令和选项 1:查看运行的虚拟机 virsh list 2:查看所有的虚拟机(关闭和运行的虚拟机) virsh list --all 3:连接虚拟机 virsh console +域名(虚 ...
- QThread安全的结束线程
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QThread安全的结束线程 本文地址:http://techieliang.com/ ...