Android自动化测试之Uiautomator_UiDevice-API详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android自动化测试之
Uiautomator-UiDevice-API详解
*****************
[在此处键入]
目录
UiDevice-API (2)
1.click (2)
2.freezeRotation (2)
3.getCurrentPackageName (3)
4.getDisplayHetght与getDisplayWidth . 3
5.getDisplayRotation (3)
6.getDisplaySizeDp (4)
7.getProductName (5)
8.监听器 (5)
9.按键事件 (8)
10.旋转 (9)
11.锁屏与唤醒 (10)
12.等待对象 (11)
13.截图 (12)
14.拖拽与滑动 (12)
15.通知栏.快速设置 (13)
16.窗口布局结构 (13)
UiDevice-API
uidevice提供关于设备的状态信息。你也可以使用这个类来模拟装置上的用户的行为,如按方向键或按菜单按钮。
1.click
.
例子:
点击坐标点(300,300)
UiDevice.getInstance().click(300,300);
或getUiDevice().click(300,300);
推荐使用上面的UiDevice.getInstance()进行书写,如果使用下面的书写,在同一个类中没问题,如果要在其他类中的方法使用了getUiDevice,调用到本类中不会有语法错误,但是执行的时候会出错。以下也是如此,不再写getUiDevice。
2.freezeRotation
例子:
当前手机状态为竖屏,锁定当前手机为竖屏,不让手机跟随着手机物理旋转而旋转。
UiDevice.getInstance().freezeRotation();
3.getCurrentPackageName
例子:
当前在QQ界面,我想要知道QQ的包名
4.getDisplayHetght与getDisplayWidth
例子:
获得当前手机的屏幕宽度与高度,即获得当前手机的屏幕分辨率
5.getDisplayRotation
返回整数
0代表当前物理旋转0度
1代表当前物理旋转90度
2代表当前物理寻转180度
3代表当前物理旋转270度
例子:
获取当前界面的旋转状态:
switch(UiDevice.getInstance().getDisplayRotation()){
case 0:
System.out.println("当前旋转状态0度");
break;
case 1:
System.out.println("当前旋转状态90度");
break;
case 2:
System.out.println("当前旋转状态180度");
break;
case 3:
System.out.println("当前旋转状态270度");
break;
default:
break;
}
6.getDisplaySizeDp
DP知识:
在android系统中单位DP也就是DIP:device independent pixels(设备独立像素).
dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。
dp也就是dip。这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp 或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale 无关。如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px 作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView 的宽度设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动将width属性值设置成320px 的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp 和sp,系统会根据屏幕密度的变化自动进行转换.
例子:
Point aPoint=getUiDevice().getDisplaySizeDp();
System.out.println("width:"+aPoint.x);
System.out.println("height:"+aPoint.y);
7.getProductName
例子:
获取当前产品名
8.监听器
监听器用于处理中断,当脚本其他未知情况打断执行的时候,如果有监听器则会跳转到监听器中执行,我们可以使用监听器做一些特殊的测试如,来电,来闹钟日常等测试。还可以处理异常中断,如我最先设计的测试步骤,中途突然10086来了封短信,弹窗短信,直接打断我的脚本步骤,如果我没有做预先的处理则,这条用例最终就执行失败。另外监听器需要写在脚本的开头。
例子:
在循环打开百度关闭百度应用过程中来电话,使用监听器挂断电话,让脚本继续执行。
//注册监听器,处理来电
UiDevice.getInstance().registerWatcher("hangUpThePh