Android自动化测试之Uiautomator_UiDevice-API详解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档