UiAutomator笔记之UiObject API(四)

转:http://blog.csdn.net/yiwaChen/article/details/52590112

一、UiObject 功能

UiObject用来代表一个组件对象,它提供一系列方法和属性来模拟在手机上的实际操作。如:文本的输入和清除、点击、长按、拖动、滑动,也可获取组件的属性、判断组件对象是否存在等。


二、API详细介绍

1、点击与长按

(1)相关API

返回值 API 说明
boolean click() 点击对象
boolean clickAndWaitForNewWindow(long timeout) 点击对象,等待新窗口出现,参数为等待超时时长
boolean clickAndWaitForNewWindow() 点击对象,等待新窗口出现
boolean clickBottomRight() 点击对象的右下角
boolean clickTopLeft() 点击对象的左上角
boolean longClick() 长按对象,对对象执行长按操作
boolean longClickBottomRight() 长按对象的右下角
boolean longClickTopLeft() 长按对象的左上角

(2)示例

new UiObject(new Selector().resourceId("xxxxx")).click();//对指定资源id的组件执行点击操作

2、拖拽与滑动
(1)区别
拖拽:将控件从当前位置移动到指定位置
滑动:向某一方向(上、下、左、右)移动一小段距离

(2)相关API
返回值 API 说明
boolean dragTo(UiObject destObj, int steps) 拖拽对象到另一个对象位置上,步长可设置拖动的速度
boolean dragTo(int destX, int destY, int steps) 拖拽对象到屏幕某个坐标位置上,步长可设置拖动速度
boolean swipeDown(int steps) 拖动对象往下滑动
boolean swipeLeft(int steps) 拖动对象往左滑动
boolean swipeRight(int steps) 拖动对象往右滑动
boolean swipeUp(int steps) 拖动对象往上滑动


3、输入文本与清除文本

(1)相关API
返回值 API 说明
boolean setText(String text) 在对象中输入文本(实现方式:先清除文本再输入)
void clearTextField() 清除编辑框中的文本(实现方式:长按再清除)


(2)补充说明

clearTextField()的内部实现方式是先长按文本框然后全选删除,导致有些编辑框无法通过调用该方法清除文本内容。这时最好自己写代码实现清除文本功能。

示例代码:

//将光标移动到行尾,使用backspace进行逐个删除

UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_MOVE_END);

//判断条件中w是编辑框为空时所显示的hint文本对象;当hint出现时,说明该编辑框内的文本已清空

while(!w.exists()){
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_DEL);
}

4、获取对象的属性与属性的判断


(1)获取对象的属性-相关API
返回值 API 说明
Rect getBounds() 获得对象矩形坐标,矩形左上角坐标与右下角坐标
int getChildCount() 获得下一级子类数量
String getClassName() 获得对象类名属性的类名文本
String getContentDescription() 获得对象的描述属性的描述文本
String getPackageName() 获得对象包名属性的包名文本
String getText() 获得对象的文本属性中的文本
Rect getVisibleBounds() 返回可见视图的范围,如果视图的部分是可见的,只有可见部分报告的范围

(2)获取父类与子类节点-相关API

返回值 API 说明
UiObject getChild(UiSelector selector) 获得对象的子类对象,可以递归获取子孙当中某个对象
UiObject getFromParent(UiSelector selector) 从父类获取子类,按照UiSeletor获取兄弟类(递归)


(3)属性的判断-相关API
返回值 API 说明
boolean isCheckable() 检查对象的checkable属性是否为true
boolean isChecked() 检查对象的checked属性是否为true
boolean isClickable() 检查对象的clickable属性是否为true
boolean isEnabled() 检查对象的enabled属性是否为true
boolean isFocusable() 检查对象的focusable属性是否为true
boolean isFocused() 检查对象的focused属性是否为true
boolean isLongClickable() 检查对象的longclickable属性是否为true
boolean isScrollable() 检查对象的scrollable属性是否为true
boolean isSelected() 检查对象的selected属性是否为true


5、手势的操作


(1)手势相关操作
两指平移 
多指平移 
两指合拢 o---> <---o
两指扩张 <---oo--->

(2)相关API
返回值 API 说明
boolean performMultiPointerGesture(PointerCoords[]... touches) 执行单手指触控手势,可定义任意手势,与形状

boolean

performTwoPointerGesture(Point startPoint1, Point startPoint2, 
Point endPoint1, Point endPoint2, int steps)

执行任意两个手指触控手势,模拟两个手指手势
boolean pinchIn(int percent, int steps) 手势操作,两点向内收缩
boolean pinchOut(int percent, int steps) 手势操作,两点向外张开

6、判断对象是否存在

(1)相关API

返回值 API 说明
boolean waitForExists(long timeout) 等待对象出现
boolean waitUntilGone(long timeout) 等待对象消失
boolean exists() 检查对象是否存在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值