判断对象是否存在

1、判断对象是否存在相关API

返回值 API 描述
boolean waitForExists(long timeout) 等待对象出现
boolean waitUntilGone(long timeout) 等待对象消失
boolean exists() 检查对象是否存在

2、API应用举例

package com.test.uiobject;

import java.io.File;

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="testExists";
androidId="1";
new UiAutomatorHelper(jarName,testClass,testName,androidId); } public void testExists() throws UiObjectNotFoundException{
UiDevice.getInstance().pressHome();
sleep(2000);
UiObject message=new UiObject(new UiSelector().text("Messaging"));
message.click();
sleep(2000); UiObject text=new UiObject(new UiSelector().text("No conversations."));
if(text.exists()){
System.out.println("No conversations, please create a message");
} UiObject create=new UiObject(new UiSelector().resourceId("com.android.mms:id/action_compose_new"));
if(create.waitForExists(5000)){
create.click();
UiObject to=new UiObject(new UiSelector().resourceId("com.android.mms:id/recipients_editor"));
to.click();
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_1);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_0);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_0);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_8);
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_6);
UiObject typeMessage=new UiObject(new UiSelector().resourceId("com.android.mms:id/embedded_text_editor"));
typeMessage.setText("hello, my name is fsw!");
UiObject button=new UiObject(new UiSelector().resourceId("com.android.mms:id/send_button_sms"));
button.click();
sleep(2000);
}
}
}

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 描述 boolean scrollIntoView(UiSelector selector) 滑动到条件元素所在位置,并且尽量让其居于屏幕 ...

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

    获取对象属性与属性的判断 1.获取对象属性相关API 返回值 API 说明 Rect getBounds() 获取对象矩形坐标,矩形左上角坐标与右下角坐标 int getChildCount() 获得 ...

  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)图片缩放比例:例如图片从100像素缩小到50像素 2)图片质量:是指图片大小,质量越高图片越大,质量越低图片越小 3)File类:指的是一个文件或者一 ...

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

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

随机推荐

  1. JDBC操作,执行数据库更新操作

    目标: 使用Connection对象取得Statement实例 使用Statement进行数据增删改. Statement接口 要对数据库操作,要使用Statement完成.此接口可以使用Connec ...

  2. OTU_Network&calc_otu

    # -*- coding: utf-8 -*- # __author__ = 'JieYap' from biocluster.agent import Agent from biocluster.t ...

  3. ASP.NET CORE 2.1无法添加控制器、视图

    常规操作:右键Controllers,添加控制器 结果提示:运行所选代码生成器时出错 在控制器里快速添加视图也得到同样的错误提示 既然提示代码生成器了,对比了一下2.0和2.1的代码,发现2.1默认没 ...

  4. python安装scrapy小问题总结

    AttributeError: 'module' object has no attribute 'OP_NO_TLSv1_1'

  5. ss - float浮动模块的高度问题 解决方案

    当一个Div中的子元素都是浮动元素时,该div是没有高度的.通常会带来很多困扰,解决方案如下: 低版本统配兼容: overflow: hidden; 下面是不支持低配浏览器,而且似乎该效果对 P 标签 ...

  6. Postman 常用操作

    一,入参为json 格式 实例:添加学生信息,这个接口是用来讲入参式json 类型的 二,上传文件 三,添加header 信息 实例:获取所有学生信息 四,添加cookie以及身份验证 实例:学生金币 ...

  7. PHP命名空间规则解析及高级功能3

    PHP命名空间规则解析及高级功能 -- : 来源:中国站长站综合 编辑:水色皇朝[纠错]1人评论 A-A+ 怎么开淘宝店 网站优化方法 创业如何获得投资 怎么做微商 最新LOL活动 日前发布的PHP ...

  8. maven依赖workspace和jar包

    当开发maven项目时,如果workspace中有maven依赖的项目,并且groupid和artifactId都相同,maven就会优先依赖workspace中的项目文件,如果想依赖maven库中的 ...

  9. Struts提交form之后抛出异常java.lang.IllegalArgumentException: The path of an ForwardConfig cannot be null

    原因:在ActionForm中使用了ActionErrors,并且ActionErrors中的内容不为空,所以Struts会根据action的配置跳转到input指定的页面.但是我在配置action的 ...

  10. C# 一个长度为100的int数组,插入1-100的随机数,不能重复,如何写

    int[] intArr = new int[100]; ArrayList myList = new ArrayList(); Random rnd = new Random(); while (m ...