java+UIAutomatorAPI详解
UiObject
手势操作
dragTo():拖拽
dragTo(int destX, int destY, int steps)--拖拽对象到屏幕(destX,destY)位置上
dragTo(UiObject destObj, int steps)--拖拽对象到屏幕另一个对象(destObj)位置上
swipe():滑动
swipe(int startX, int startY, int endX, int endY, int steps)--通过坐标滑动屏幕
swipe(Point[] segments, int segmentSteps)--点阵列滑动,segments为Point[]点阵列
swipeUp(int steps)--拖动对象向上滑动
swipeDown(int steps)--拖动对象向下滑动
swipeLeft(int steps)--拖动对象向左滑动
swipeRight(int steps)--拖动对象向右滑动
多点触控手势
perfromTwoPointGesture(Point startPoint1, Point startPoint2, Point endPoint1, Point endPoint2, int steps)--任意双点触控手势,模拟双指手势
pointIn():双指向内收缩手势
pointIn(int percent, int steps)
int percent:滑到对角线百分比的位置停止
int steps:代表时间
pointOut():双指向外扩张手势
pointOut(int percent, int steps)
int percent:滑到对角线百分比的位置停止
int steps:代表时间
输入
setText():输入文本
setText(String text)
String text:输入的文本内容
clearText():清楚编辑框中的文本
点击
click():点击对象操作
clickAndWaitForNewWindow():点击对象并一直等到新窗口出现
clickButtomRight():点击对象右下角
clickTopLeft():点击对象左上角
长按
longClick():长按对象
longClickButtomRight():长按对象右下角
longClickTopLeft():长按对象左上角
等待
waitForExists(long timeout):等待对象出现
waitUtilGone(long timeout):等待对象消失
exists():检查对象是否存在
waitForIdle():持续等待当前应用程序处于空闲状态为止
waitForIdle(long timeout):持续等待当前应用程序处于空闲状态为止
waitForWindowUpdate(String packageName, long timeout):等待窗口内容更新事件的发生
截图
takeScreenshot(File storePath):截屏并将图像保存到指定路径下(手机端路径,非PC端路径)
takeScreenshot(File storePath, float scale, int quality):将当前窗口截图未png图片格式,可以自定义缩放比例与图片质量
stroePath:存储路径,必须为png格式
scale:缩放比例,1.0为原图
quality:图片压缩质量,范围0~100
获取对象属性
getPackageName():获取对象(当前控件)包名属性的包名
getClassName():获取对象类属性的类名
getContentDescription():获取控件对象的描述属性
getText():获取控件对象的文本属性
getBounds():获取控件对象的坐标属性(返回控件左上角和右下角坐标)
获取控件对象
getFromParent(Uiselector selector):通过控件的父类(上一级控件)获取该控件
getChild(Uiselector selector):通过该控件获取其子类(下一级控件)
getChildCount():获取下一级控件数,以便递归获取下级控件中目标控件对象
getVisibleBounds():返回可见视图的范围(若视图的部分是可见的,将只返回可见部分的范围)
控件自身属性
isEnabled():检查对象enabled属性是否未true
isCheckable():检查对象checkble属性是否未true
isClickable():检查对象的clickble属性是否未true
isChecked():检查对象的checked属性是否为true
isFocused():检查对象的focused属性是否为true
isFocusable():检查对象的focusable属性是否为true
isLongClickable():检查对象的longclickable属性是否为true
isScrollable():检查对象的scrollable属性是否为true
isSelected():检查对象的selected属性是否为true
UiDevice
锁屏/唤醒
wakeUp():唤醒屏幕
isScreenOn():检查屏幕是否为唤醒状态
获取设备属性
getProductName():获取产品名
getInstance():获取设备对象
getDisplaySizeDp():获取显示大小
getDisplayHeight():获取显示高度
getDisplayWidth():获取显示宽度
getDisplayRotation():获取当前显示角度
键值事件
pressBack():发送<BACK>键
pressHome():发送<HOME>键
pressMenu():发送<MENU>键
pressEnter():发送<ENTER>键
pressDelete():模拟短按删除键
pressRecentApps():模拟短按最近应用程序按键
pressSearch():模拟短按搜索键
pressDPadCenter():模拟轨迹球居中
pressDPadUp():模拟轨迹球向上
pressDPadDown():模拟轨迹球向下
pressDPadLeft():模拟轨迹球向左
pressDPadRight():模拟轨迹球向右
旋转
freezeRotation():禁用传感器,在其当前旋转状态冻结装置物理旋转
unfreezeRotation():重启传感器,允许物理旋转
setOrientation():禁用传感器、模拟屏幕转到其默认方向,固定位置
setOrientationLeft():禁用传感器、模拟设备向左转,固定位置
setOrientationRight():禁用传感器、模拟设备向右转,固定位置
isNaturalOrientation():检查设置是否在其默认方向(即自然旋转竖屏)上
布局文件
dumpWindowHierarchy(String fileName):将当前窗口的布局结构另存为文件fileName
setCompressedLayoutHeirarchy(boolean compressed):启用或者禁用布局层次压缩
获取包名
getCurrentPackageName():获取当前应用的包名
获取应用名
getCurrentActivityName():获取当前应用的应用名
通知栏
openNotification():开启通知栏
openQuickSetting():直接打开快速设置
UiSelector
textStartsWith(String text):通过文本(开始字串匹配)方式进行控件筛选
textContains(String text):通过文本(字符包含)方式进行文本筛选
textMatches(String regex):通过文本(正则表达式)方式进行控件筛选
description(String desc):通过描述(字符匹配)方式进行控件筛选
descriptionStartsWith0(String desc):通过描述(开始字符匹配)进行控件筛选
descriptionContains(String desc):通过描述(字符包含)进行控件筛选
descriptionMatches(String desc):通过描述(正则表达式)方式进行控件筛选
className(String className):通过类名(字串匹配)方式进行控件筛选
classNameMatches(String regex):通过类名(正则表达式)方式进行控件筛选
packageName(String name):通过包名(字串匹配)方式进行控件筛选
packageNameMatches(String regex):通过包名(正则表达式)方式进行控件筛选
childSelector(UiSelector selector):通过定位子类方式进行控件筛选
fromParent(UiSelector selector):通过定位父类方式进行控件筛选
index(int index):通过索引方式进行控件筛选
instance(ine instance):通过实例方式进行控件筛选
resourceId(String id):通过控件ID进行控件筛选
resourceIdMatches(String regex):通过控件ID(正则表达式)方式进行控件筛选
checked(boolean val):通过可勾选属性方式进行控件筛选
clickable(boolean val):通过可点击属性方式进行控件筛选
scrollable(boolean val):通过可滚动属性方式进行控件筛选
selected(boolean val):通过可选择属性方式进行控件筛选
longClickable(boolean val):通过可长按属性方式进行控件筛选
enabled(boolean val):通过启用属性方式进行控件筛选
focusable(boolean val):通过焦点属性方式进行控件筛选
focused(boolean val):通过当前焦点属性方式进行控件筛选
UiCollection
getChildCount(UiSelector childPattern):获取符合条件的子控件数量
getChildByDescription(Uiselector childPattern, String text):通过描述定位符合条件的子元素
getChildByText(UiSelector childPattern, String text):通过文本定位符合条件的子元素
getChildByInstance(UiSelector childPattern, String instance):通过实例定位符合条件的子元素
UiScrollable
滚动方式
scrollIntoView(UiSelector selector):滚动到目标元素所在位置,并尽可能使其位于屏幕正中位置
scrollIntoView(UiObject obj):滚动到目标元素所在位置,并尽可能使其位于屏幕正中位置
scrollTextIntoView(String text):滚动到为本对象所在位置,并尽可能使其位于屏幕正中位置
scrollDescriptonIntoView(String text):滚动到描述所在位置,并尽可能使其位于屏幕正中
scrollToBeginning(int maxSwipes):按照设定的最大滑动距离滚动到开始位置
scrollToBeginning(int maxSwipes, int steps):按照设定的最大滑动距离和滑动次数滚动到开始位置
scrollToEnd(int maxSwipes):按照设定的最大滑动距离滚动到结束位置
scrollToEnd(int maxSwipes, int steps):按照设定的最大滑动距离和滑动次数滚动到结束位置
scrollForward():向前滚动(默认步长55)
scrollForward(steps):自定义步长向前滚动
scrollBackward():向后滚动(默认步长55)
scrollBackward(steps):自定义步长向后滚动
滚动方向
listScrollable.setAsHorizontaList():滚动方式恢复为横向滚动
listScrollable.setAsVerticaList():滚动方式恢复为纵向滚动
快速滚动
flingForward():快速向前滑动(默认步长为5)
flingBackward():快速想向后滑动(默认步长为5)
flingToBeginning(int maxSwipes):自定义滑动次数快速滚动到顶(默认步长为5)
flingToEnd(int maxSwipes):自定义滑动次数快速滚动到底(默认步长为5)
获取/设置最大滚动次数
getMaxSearchSwipes():获取执行搜索滚动过程中的最大滚动次数
setMaxSearchSwipes(int swipes):设置执行搜索滚动过程中的最大滚动次数
UiWatcher
registerWatcher(String UiWatcher watcher):注册监听器
removeWatcher(String name):移除之前注册的监听器
resetWatcherTriggers():重置一个监听器
runWatcher():强制运行所有的监听器
hasAnyWatcherTriggered():检查是否有监听器触发过
hasWatcherTriggered(String watcherName):检查某个监听器是否触发过
java+UIAutomatorAPI详解
最新推荐文章于 2024-02-18 21:45:56 发布