本文主要讲解使用UiAutomator的一些技巧,希望对于初学者有一定的帮助

UiObject

1、首先要声明对象

UiObject XXX = new UiObject(new Selector) ;

2、其次对对象进行操作

操作类型包括:

执行类:文本输入与清除、点击/长按、拖动/滑动、

属性类:文本内容、获取子类、是否存在、是否可用

点击

click ():点击对象

clickAndWaitForNewWindow (long timeout):点击对象,等待新窗口出现,参数为等待超时时长,

clickAndWaitForNewWindow ():点击对象,等待新窗口出现

clickBottomRight ():点击对象的右下角

clickTopLeft ():点击对象的左上角

长按

longClick ():长按对象

longClickBottomRight ():长按对象右下角

longClickTopLeft ():长按对象左上角

拖拽

dragTo (UiObject destObj, int steps):拖拽对象到另一个对象位置上面,可以设置拖动的速度,默认40 steps

dragTo (int destX, int destY, int steps):拖拽对象到某个坐标位置,步长可以设置,默认40 steps

滑动

swipeDown (int steps):拖动对象向下滑动,步长可以设置

swipeLeft (int steps):拖动对象向左滑动,步长可以设置

swipeRight (int steps):拖动对象向右滑动,步长可以设置

swipeUp (int steps):拖动对象向上滑动,步长可以设置

输入/清楚文本

setText (String text):设置文本框对象的文本内容

clearTextField ():清除文本框对象的文本内容

获取对象属性

getBounds ():获取对象的矩形坐标,即矩形左上角和右下角坐标

getChild (UiSelector selector):获取对象的子对象,可以根据子对象的特殊属性来获取

getChildCount ():获取下一级子类的数量

getClassName ():获取对象的类名

getContentDescription ():获取对象的文本描述

getFromParent (UiSelector selector):从父类获取子类,根据子类的特殊属性来获取

getPackageName ():获取对象的包名

UiSelector getSelector ():获取selector,用于调试,实用性不大

getText ():获取对象的文本信息

getVisibleBounds ():返回可见视图的范围

属性判断

isCheckable ():检查对象的Check属性是否为true,判断当前对象是否可以打钩

isChecked ():检查对象的Checked属性是否为true,判断当前对象是否已经打钩

isClickable ():检查对象的Click属性是否为true,判断当前对象是否可以点击

isEnabled ():检查对象的Enable属性是否为true,判断当前对象是否可用

isFocusable ():检查对象的Focusable属性是否为true,判断当前对象是都可以获取焦点

isFocused ():检查对象的Focus属性是否为true,判断当前对象是否已经获取焦点

isLongClickable ():检查对象的LongClick属性是否为true,判断当前对象是都可以长按

isScrollable ():检查对象的LongClick属性是否为true,判断当前对象是都可以滑动

isSelected ():检查对象的Selected属性是否为true,判断当前对象是都已经选中

手势操作

performMultiPointerGesture (PointerCoords... touches):执行单手指触控手势,可定义任何手势和形状

performTwoPointerGesture (Point startPoint1, Point startPoint2, Point endPoint1, Point endPoint2, int steps):执行任意两个手指触控,模拟两个手指手势

pinchIn (int percent, int steps):手指操作,两点向内收缩

pinchOut (int percent, int steps):手指操作,两点向外扩展

对象是否存在

waitForExists (long timeout):等待对象出现, 可设置时长

waitUntilGone (long timeout):等待对象消失, 可设置时长

exists ():判断对象是否存在

【转】Android自动化测试(UiAutomator)——UiObject的更多相关文章

  1. Android自动化测试-UiAutomator2环境搭建

    Android自动化测试-UiAutomator环境搭建(QQ交流群:490451176) 一.环境准备 1. 安装android sdk,并配置环境变量 2. 安装android studio,国内 ...

  2. 【转】Android自动化测试(UiAutomator)简要介绍

    一.一个BUG引发的问题   如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”.这个问题我们如何验证呢?我想,最好的方式应该是自动化测试.    那么,自动化测试可以完成哪些任务呢?  ...

  3. Android自动化测试(UiAutomator)

    一.一个BUG引发的问题   如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”.这个问题我们如何验证呢?我想,最好的方式应该是自动化测试.    那么,自动化测试可以完成哪些任务呢?  ...

  4. Android自动化测试框架UIAutomator原理浅析

    UIAutomator是一个Android自动化测试框架,是谷歌在Android4.1版本发布时推出的一款用Java编写的UI测试框架,它只能用于UI即黑盒方面的测试.所以UIAutomator只能运 ...

  5. 解放双手——Android自动化测试

    解放程序猿宝贵的右手(或者是左手) http://blog.csdn.net/eclipsexys/article/details/45622813 --Android自动化测试技巧 Google大神 ...

  6. Android自动化测试探索

    Android自动化测试探索 前言 通常来说,我们开发完成产品之后,都是由测试组或者是我们自己点一点,基本上没有问题了就开始上线.但是,随着时间的堆叠,一款产品的功能也越来越多.这时,我们为了保证产品 ...

  7. 几种常见的Android自动化测试框架及其应用

    随着Android应用得越来越广,越来越多的公司推出了自己移动应用测试平台.例如,百度的MTC.东软易测云.Testin云测试平台…….由于自己所在项目组就是做终端测试工具的,故抽空了解了下几种常见的 ...

  8. Eclips+ADT+SDK构建android开发环境及android自动化测试开发环境

    一. 需要用到的包: 1.adt-bundle-windows-x86_64-20140702.zip+JDK+ant 2.ant下载地址:http://ant.apache.org/bindownl ...

  9. Android自动化测试-Robotium(一)简介

    一.Robotium原理 Robotium是一款Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击.长按.滑动等).查找和断言机制的API ...

随机推荐

  1. Debian6 安装Kscope(也适用于Ubuntu)

    参考:http://soft.chinabyte.com/os/134/12307634.shtml kscope1.6.2在这里下载,下载后解压出kscope-1.6.2.tar.gz. 在ubun ...

  2. activemq 5.13.2 jdbc 数据库持久化 异常 找不到驱动程序

    原文:https://my.oschina.net/u/2284972/blog/662033 摘要: activemq jdbc 数据库持久化 异常 找不到驱动程序 Caused by: java. ...

  3. 关于 Delphi 中流的使用(2) 用 TFileStream(文件流) 读写

    TStream 是一个抽象的基类, 不能直接生成对象. 在具体的应用中, 主要使用它的子孙类:TFileStream: 文件流TStringStream: 字符串流TMemoryStream: 内存流 ...

  4. 推荐一个静态页面生成工具-mkdocs

    最近需要找一个生成api文档的工具,找来找去发现mkdocs特别符合需求. 部署只需python和pip 直接生成静态html 用markdown编写 不需要再markdown里指明日期.标题等信息 ...

  5. NDK官方开发指南翻译之 NDK_GDB

    这几天看JNI,没有基础,那真是难受--把看到的相关资料记录一下,也分享给刚開始学习的人. 'ndk-gdb' Overview 重要:假设你要调试线程相关的程序.请阅读以下的'Thread Supp ...

  6. xunsearch使用namespace后bug修复

    xunsearch在使用了namespace后会出现不能正常使用 错误例如以下: Fatal error: Uncaught [vendors\xunsearch\lib\XSException] . ...

  7. XP如何安装字体

    1 点击控制面板,选择外观和主题,然后在左侧菜单中选择字体 2 点击文件,安装新字体选择驱动器和文件夹以找到自己下载的字体文件位置(如微软雅黑.ttf)点击确定之后可以安装.

  8. 为InfiniBand而哭泣

    自古就不乏还没有開始就结束的那种精彩.我称之为殉道者.InfiniBand就是当中之中的一个.尽管它有陨落之势,我依旧要为它鼓掌. 假设说以太网旨在将主机联系在一起,那么InfiniBand的初衷就是 ...

  9. 8_陀螺仪MPU6050和PWM控制在STM32F4-Discovery开发板上的实现

    非常早曾经就把圆点博士的程序从STM32F103移植到STM32F4_Discovery (STM32F407), battery.陀螺仪和PWM电机控制的程序都已经測试完成,执行有一段时间,正常.以 ...

  10. 服务端渲染 SSR

    1.概述 SSR:网站内容由服务端渲染,然后返回客户端(查看网页源代码,所有内容都在源代码里面). 2.SSR优势 (1)SSR利于SEO. (2)SSR减少请求量和客户端渲染时间.