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 ...
随机推荐
- (二)Luence——代码实现索引及搜索
完成需求:使用Lucene完成对数据库中图书信息的索引和搜索功能. 1. 环境准备及工程搭建 1.1 环境准备 mysql5.5+java8+lucene4.10.3(目前最新7.0.1,这里够用就好 ...
- Python-绑定与未绑定方法通俗讲解
像函数一样,Python中的类方法也是一种对象.由于既可以通过实例也可以通过类来访问方法,所以在Python里有两种风格: 未绑定的类方法:没有self 通过类来引用方法返回一个未绑定方法 ...
- python-嵌套循环(Nested loop)-久久乘法表
嵌套-久久乘法 for i in range(1,10): for j in range(1,10): print('{} × {} = {}'.format(i,j,i*j))最外层的循环依次将数值 ...
- Atitit.h5 web webview性能提升解决方案-----fileStrore缓存离线存储+http方案
Atitit.h5 web webview性能提升解决方案-----fileStrore缓存离线存储+http方案 1. 业务场景 android+webview h5 css背景图性能提升1 2. ...
- Atitit.html解析器的选型 jsoup nsoup ,java c# .net 版本
Atitit.html解析器的选型 jsoup nsoup ,java c# .net 版本 1. 框架选型的要求1 1.1. 文档多1 1.2. 跨平台1 2. html解析器特性:1 2.1. j ...
- 通过 SysVinit、Systemd 和 Upstart 管理系统自启动进程和服务
管理 Linux 自启动进程 Linux 系统的启动程序包括多个阶段,每个阶段由一个不同的图示块表示.下面的图示简要总结了启动过程以及所有包括的主要组件. Linux 启动过程 当你按下你机器上的电源 ...
- 1.GCC编译过程
一. GCC编译过程 gcc -E hello.c -o hello.i // 预处理.将代码中包含的头文件和宏进行替换 gcc -S hello.i -o hello.s // 汇编.将当前文本转换 ...
- 使用thrift进行跨语言调用(php c# java)
使用thrift进行跨语言调用(php c# java) 1:前言 实际上本文说的是跨进程的异构语言调用,举个简单的例子就是利用PHP写的代码去调C#或是java写的服务端.其实除了本文提供的办法 ...
- 地址url的split()方法使用;
stringObject.split(separator,howmany) 参数 描述 separator 必需.字符串或正则表达式,从该参数指定的地方分割 stringObject. howmany ...
- 跟着百度学PHP[17]-PHP扩展CURL的用法详解
实现的功能: 1.实现远程获取和采集内容2.实现PHP 网页版的FTP上传下载3.实现模拟登陆:去一个邮件系统,curl可以模拟cookies4.实现接口对接(API),数据传输等:通过一个平台发送短 ...