Android无线测试之—UiAutomator UiObject API介绍五
获取对象属性与属性的判断
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介绍五的更多相关文章
- Android无线测试之—UiAutomator UiObject API介绍六
手势操作 1.手势相关操作 2.相关API介绍 返回值 API 描述 boolean performMultiPointerGesture(PointerCoords[]... touches) 执行 ...
- Android无线测试之—UiAutomator UiObject API介绍一
UiObject类介绍 一.UiObject类介绍 UiObject代表一个UI元素,通过UiSelector查找跳进创建一个UiObject实例,找到这个实例以后可以对这个实例进行各类操作 二.Ui ...
- Android无线测试之—UiAutomator UiScrollable API介绍五
滑动区域校准常量设置与获取 一.校准概念 校准常量指的是:滑动操作坐标时的偏移量,用来取偏移比例 二.相关API 返回值 API 描述 double getSwipeDeadZonePercentag ...
- Android无线测试之—UiAutomator UiObject API介绍七
判断对象是否存在 1.判断对象是否存在相关API 返回值 API 描述 boolean waitForExists(long timeout) 等待对象出现 boolean waitUntilGone ...
- Android无线测试之—UiAutomator UiObject API介绍四
输入文本与清除文本 一.输入文本与清除文本相关API 返回值 API 描述 boolean setText(String test) 在对象中输入文本 void clearTextField() 清除 ...
- Android无线测试之—UiAutomator UiObject API介绍三
拖拽与滑动 一.拖拽与滑动的示意图 二.拖拽与滑动相关的API 返回值 API 描述 boolean dragTo(UiObject destObj, int setps) 拖拽对象到另一个对象位置上 ...
- Android无线测试之—UiAutomator UiObject API介绍二
点击与长按 一.组件区域位置关系 Rect 对象代表一个矩形区域 [Left,Top] [Right,Bottom] 二.点击与长按API 返回值 API 描述 boolean click() 点击对 ...
- Android无线测试之—UiAutomator UiDevice API介绍五
屏幕旋转 一.屏幕旋转相关知识: 1)旋转方向:0度,90度(向左转),180度,270度(向右转) 2)重力感应器:重力感应器是旋转所依靠的 3)固定位置:指将屏幕方向固定在0度,90度或者180度 ...
- Android无线测试之—UiAutomator UiScrollable API介绍三
获取列表子元素 一.相关API介绍 返回值 API 描述 UiObject getChildByDescription(UiSelector childPattern, String text, bo ...
随机推荐
- 关于JSP和HTML
工作中,发现非常多同事不清楚JSP与HTML的生命周期.以至于出现"JavaScript为啥不能调用JSTL标签(或EL表达式)?"的笑话问题. 以下以流程图的方式.简单说明一下过 ...
- DS18B20 crc 算法
http://blog.csdn.net/pengrui18/article/details/24740973 https://www.maximintegrated.com/cn/app-notes ...
- 区分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 ...
- unity, break prefab instance
菜单->GameObject->Break Prefab Instance,可以打断prefab实例与prefab的连接. 一个用处是:比如想从sceneA拷贝一部分Hierarchy结构 ...
- 为每个页面加上Session判断
首先新建一个类,继承自System.Web.UI.Page,然后重写OnInit,如下: using System; using System.Data; using System.Configura ...
- Linux基础tree命令
tree命令以树状图列出文件目录结构.不过某些Linux上(Centos 6.4)没有tree命令,本文将介绍安装方法. 常用参数: tree -d 只显示目录. tree -L 1 只显示第一层目录 ...
- Python内置函数之repr()
repr(object) 返回对象的字符串形式. >>> a = 'hello' >>> repr(a) "'hello'" 返回的字符串形式可 ...
- linux命令之高级使用 service
service命令,顾名思义,就是用于管理Linux操作系统中服务的命令. 1. 声明:这个命令不是在所有的linux发行版本中都有.主要是在redhat.fedora.mandriva和centos ...
- libubox-uloop
参考:libubox组件(3)——uloop uloop是提供事件驱动机制接口,类似libevent事件框架,基于epoll接口来实现的. uloop三大功能:事件管理(uloop_fd).超时管理( ...
- Nginx指令概述
指令概述 配置指令是一个字符串,可以用单引号或者双引号括起来,也可以不括.但是如果配置指令包含空格,一定要引起来. 指令参数 指令的参数使用一个或者多个空格或者TAB字符与指令分开.指令的参数有一个或 ...