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

1、获取对象属性相关API

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

import android.graphics.Rect;
import android.view.KeyEvent; import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase; public class Demo extends UiAutomatorTestCase { /**
* @param args
*/
public static void main(String[] args) {
String jarName,testClass,testName,androidId;
jarName="demo";
testClass="com.test.uiobject.Demo";
testName="testGet";
androidId="1";
new UiAutomatorHelper(jarName,testClass,testName,androidId); } public void testGet() throws UiObjectNotFoundException{
UiDevice.getInstance().pressHome();
sleep(2000);
UiObject message=new UiObject(new UiSelector().text("Messaging"));
message.clickAndWaitForNewWindow();
UiObject createMessage=new UiObject(new UiSelector().resourceId("com.android.mms:id/action_compose_new"));
createMessage.clickAndWaitForNewWindow(); UiObject messageContent=new UiObject(new UiSelector().resourceId("com.android.mms:id/embedded_text_editor"));
String text=messageContent.getText();
System.out.println("Text is: "+text); String className=messageContent.getClassName();
System.out.println("ClassName is: "+className); String description=messageContent.getContentDescription();
System.out.println(description); String packageName=messageContent.getPackageName();
System.out.println(packageName); Rect rect=messageContent.getBounds();
System.out.println(rect); //childCount()
UiDevice.getInstance().pressHome();
sleep(2000); UiObject apps=new UiObject(new UiSelector().descriptionContains("Apps"));
apps.clickAndWaitForNewWindow(); UiObject fileManager=new UiObject(new UiSelector().text("File Manager"));
fileManager.clickAndWaitForNewWindow(); UiObject movies=new UiObject(new UiSelector().resourceId("com.cyanogenmod.filemanager:id/navigation_view_details_item").index(4));
System.out.println("Movies have "+movies.getChildCount()+" childs");
movies.click();
} }

Demo.java

2、获取对象父类与子类节点

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

import android.graphics.Rect;
import android.view.KeyEvent; import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase; public class Demo extends UiAutomatorTestCase { /**
* @param args
*/
public static void main(String[] args) {
String jarName,testClass,testName,androidId;
jarName="demo";
testClass="com.test.uiobject.Demo";
testName="testGetChildAndGetFromParent";
androidId="1";
new UiAutomatorHelper(jarName,testClass,testName,androidId); } public void testGetChildAndGetFromParent() throws UiObjectNotFoundException{
UiDevice.getInstance().pressHome();
sleep(2000); UiObject apps=new UiObject(new UiSelector().descriptionContains("Apps"));
apps.clickAndWaitForNewWindow(); UiObject fileManager=new UiObject(new UiSelector().text("File Manager"));
fileManager.clickAndWaitForNewWindow(); UiObject movies=new UiObject(new UiSelector().resourceId("com.cyanogenmod.filemanager:id/navigation_view_details_item").index(4)); //getChild()
String fileName1=movies.getChild(new UiSelector().className("android.widget.TextView").index(0)).getText();
System.out.println("The file1 name is: "+fileName1); //getFromParent()
//movies.getFromParent(new UiSelector().resourceId("com.cyanogenmod.filemanager:id/navigation_view_details_item").index(2)).click();
movies.getFromParent(new UiSelector().className("android.widget.LinearLayout").index(2)).click();
} }

Demo.java

3、属性的判断

返回值 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
package com.test.uiobject;

import android.graphics.Rect;
import android.view.KeyEvent; import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase; public class Demo extends UiAutomatorTestCase { /**
* @param args
*/
public static void main(String[] args) {
String jarName,testClass,testName,androidId;
jarName="demo";
testClass="com.test.uiobject.Demo";
testName="testTrueOrFalse";
androidId="1";
new UiAutomatorHelper(jarName,testClass,testName,androidId); } public void testTrueOrFalse() throws UiObjectNotFoundException{
UiDevice.getInstance().pressHome();
sleep(2000); UiObject apps=new UiObject(new UiSelector().descriptionContains("Apps"));
apps.clickAndWaitForNewWindow(); UiObject setting=new UiObject(new UiSelector().text("Settings"));
setting.click();
sleep(2000); //WiFi开启则点击关闭,关闭的则点击开启
UiObject wifi=new UiObject(new UiSelector().className("android.widget.Switch").instance(0));
if(!wifi.isChecked()){
wifi.click();
System.out.println("WiFi's checked is "+wifi.isChecked());
}
else
wifi.click();
System.out.println("WiFi's checked is "+wifi.isChecked());
} }

Demo.java

Android无线测试之—UiAutomator UiObject API介绍五的更多相关文章

  1. Android无线测试之—UiAutomator UiObject API介绍六

    手势操作 1.手势相关操作 2.相关API介绍 返回值 API 描述 boolean performMultiPointerGesture(PointerCoords[]... touches) 执行 ...

  2. Android无线测试之—UiAutomator UiObject API介绍一

    UiObject类介绍 一.UiObject类介绍 UiObject代表一个UI元素,通过UiSelector查找跳进创建一个UiObject实例,找到这个实例以后可以对这个实例进行各类操作 二.Ui ...

  3. Android无线测试之—UiAutomator UiScrollable API介绍五

    滑动区域校准常量设置与获取 一.校准概念 校准常量指的是:滑动操作坐标时的偏移量,用来取偏移比例 二.相关API 返回值 API 描述 double getSwipeDeadZonePercentag ...

  4. Android无线测试之—UiAutomator UiObject API介绍七

    判断对象是否存在 1.判断对象是否存在相关API 返回值 API 描述 boolean waitForExists(long timeout) 等待对象出现 boolean waitUntilGone ...

  5. Android无线测试之—UiAutomator UiObject API介绍四

    输入文本与清除文本 一.输入文本与清除文本相关API 返回值 API 描述 boolean setText(String test) 在对象中输入文本 void clearTextField() 清除 ...

  6. Android无线测试之—UiAutomator UiObject API介绍三

    拖拽与滑动 一.拖拽与滑动的示意图 二.拖拽与滑动相关的API 返回值 API 描述 boolean dragTo(UiObject destObj, int setps) 拖拽对象到另一个对象位置上 ...

  7. Android无线测试之—UiAutomator UiObject API介绍二

    点击与长按 一.组件区域位置关系 Rect 对象代表一个矩形区域 [Left,Top] [Right,Bottom] 二.点击与长按API 返回值 API 描述 boolean click() 点击对 ...

  8. Android无线测试之—UiAutomator UiDevice API介绍五

    屏幕旋转 一.屏幕旋转相关知识: 1)旋转方向:0度,90度(向左转),180度,270度(向右转) 2)重力感应器:重力感应器是旋转所依靠的 3)固定位置:指将屏幕方向固定在0度,90度或者180度 ...

  9. Android无线测试之—UiAutomator UiScrollable API介绍三

    获取列表子元素 一.相关API介绍 返回值 API 描述 UiObject getChildByDescription(UiSelector childPattern, String text, bo ...

随机推荐

  1. 关于JSP和HTML

    工作中,发现非常多同事不清楚JSP与HTML的生命周期.以至于出现"JavaScript为啥不能调用JSTL标签(或EL表达式)?"的笑话问题. 以下以流程图的方式.简单说明一下过 ...

  2. DS18B20 crc 算法

    http://blog.csdn.net/pengrui18/article/details/24740973 https://www.maximintegrated.com/cn/app-notes ...

  3. 区分SQL Server关联查询之inner join,left join, right join, full outer join并图解

    1.from A inner join B on A.ID=B.ID :两表都有的记录才列出 A表:  ID   Name                           B表: ID  Clas ...

  4. unity, break prefab instance

    菜单->GameObject->Break Prefab Instance,可以打断prefab实例与prefab的连接. 一个用处是:比如想从sceneA拷贝一部分Hierarchy结构 ...

  5. 为每个页面加上Session判断

    首先新建一个类,继承自System.Web.UI.Page,然后重写OnInit,如下: using System; using System.Data; using System.Configura ...

  6. Linux基础tree命令

    tree命令以树状图列出文件目录结构.不过某些Linux上(Centos 6.4)没有tree命令,本文将介绍安装方法. 常用参数: tree -d 只显示目录. tree -L 1 只显示第一层目录 ...

  7. Python内置函数之repr()

    repr(object) 返回对象的字符串形式. >>> a = 'hello' >>> repr(a) "'hello'" 返回的字符串形式可 ...

  8. linux命令之高级使用 service

    service命令,顾名思义,就是用于管理Linux操作系统中服务的命令. 1. 声明:这个命令不是在所有的linux发行版本中都有.主要是在redhat.fedora.mandriva和centos ...

  9. libubox-uloop

    参考:libubox组件(3)——uloop uloop是提供事件驱动机制接口,类似libevent事件框架,基于epoll接口来实现的. uloop三大功能:事件管理(uloop_fd).超时管理( ...

  10. Nginx指令概述

    指令概述 配置指令是一个字符串,可以用单引号或者双引号括起来,也可以不括.但是如果配置指令包含空格,一定要引起来. 指令参数 指令的参数使用一个或者多个空格或者TAB字符与指令分开.指令的参数有一个或 ...