UiObject API

一、UiObject 功能

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


二、API详细介绍

1、点击与长按

(1)相关API

返回值API说明
booleanclick()点击对象
booleanclickAndWaitForNewWindow(long timeout)点击对象,等待新窗口出现,参数为等待超时时长
booleanclickAndWaitForNewWindow()点击对象,等待新窗口出现
booleanclickBottomRight()点击对象的右下角
booleanclickTopLeft()点击对象的左上角
booleanlongClick()长按对象,对对象执行长按操作
booleanlongClickBottomRight()长按对象的右下角
booleanlongClickTopLeft()长按对象的左上角

(2)示例

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

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

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


3、输入文本与清除文本

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


(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说明
RectgetBounds()获得对象矩形坐标,矩形左上角坐标与右下角坐标
intgetChildCount()获得下一级子类数量
StringgetClassName()获得对象类名属性的类名文本
StringgetContentDescription()获得对象的描述属性的描述文本
StringgetPackageName()获得对象包名属性的包名文本
StringgetText()获得对象的文本属性中的文本
RectgetVisibleBounds()返回可见视图的范围,如果视图的部分是可见的,只有可见部分报告的范围

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

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


(3)属性的判断-相关API
返回值API说明
booleanisCheckable()检查对象的checkable属性是否为true
booleanisChecked()检查对象的checked属性是否为true
booleanisClickable()检查对象的clickable属性是否为true
booleanisEnabled()检查对象的enabled属性是否为true
booleanisFocusable()检查对象的focusable属性是否为true
booleanisFocused()检查对象的focused属性是否为true
booleanisLongClickable()检查对象的longclickable属性是否为true
booleanisScrollable()检查对象的scrollable属性是否为true
booleanisSelected()检查对象的selected属性是否为true


5、手势的操作


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

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

boolean

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

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

6、判断对象是否存在

(1)相关API

返回值API说明
booleanwaitForExists(long timeout)等待对象出现
booleanwaitUntilGone(long timeout)等待对象消失
booleanexists()检查对象是否存在

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值