测试中经常出现明明有控件或者文本,但是由于界面没有载入完成或者其他原因导致assert判断的结果失败。或者两次执行,一次成功,一次失败的情况。所以需要加入这些等待某些控件或者文本载入的方法,以加强程序执行的健壮性。

sleep是固定长度时间的等待,waitFor则是等待某个控件或者文本载入后再进行下一步操作。

故两者都能用的情况下,推荐waitFor

sleep,固定时间的等待

void sleep(int time)

让测试停止若干时间以便进行下一步操作

参数:

time-停止的时间,单位是毫秒,如sleep(2000),是停止了2秒钟

返回:

waitFor,等待特定的某个控件或者文本载入后再进行下一步操作

boolean waitForActivity ( Class<extends android.app.Activity > activityClass | String name [, int timeout])

等待某个activity载入以进行下一步操作

参数:

activityClass-定位activity的class

name-定位activity的名称

timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒

返回:

true-在失效时间前出现了activity

false-过了失效时间仍未找到

boolean waitForView ( Class<T> viewClass [, int timeout, boolean scroll])

等待某个view载入以进行下一步操作,通过view的class定位

参数:

viewClass-定位view的class

timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒

scroll-是否允许滚动搜索,true表示支持,false表示只能在当前屏幕内查找

返回:

true-在失效时间前出现了view

false-过了失效时间仍未找到

boolean waitForView (int id [, int minimumNumberOfMatches, int timeout, boolean scroll])

等待某个view载入以进行下一步操作,通过view的id定位

参数:

id-定位view的id

minimumNumberOfMatches-最小指定多少才可以往下进行,0表示1个或者多个

timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒

scroll-是否允许滚动搜索,true表示支持,false表示只能在当前屏幕内查找

返回:

true-在失效时间前出现了view

false-过了失效时间仍未找到

boolean waitForView ( android.view.View.view  view [, int timeout, boolean scroll])

等待某个view载入以进行下一步操作,通过view名称定位

参数:

view-定位view的名称

timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒

scroll-是否允许滚动搜索,true表示支持,false表示只能在当前屏幕内查找

返回:

true-在失效时间前出现了view

false-过了失效时间仍未找到

boolean waitForText (String text [, int minimumNumberOfMatches, int timeout, boolean scroll, boolean onlyVisible])

等待某个文本载入以进行下一步操作

参数:

text-等待的文本

minimumNumberOfMatches-最小指定多少才可以往下进行,0表示1个或者多个

timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒

scroll-是否允许滚动搜索,true表示支持,false表示只能在当前屏幕内查找

onlyVisible-只有可见的才会被统计

返回:

true-在失效时间前出现了view

false-过了失效时间仍未找到

boolean waitForDialogToOpen([int timeout])

等待对话框打开

参数:

timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒

返回:

true-在失效时间前打开了dialog

false-过了失效时间仍未打开

boolean waitForDialogToClose([int timeout])

等待对话框关闭

参数:

timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒

返回:

true-在失效时间前关闭了dialog

false-过了失效时间仍未关闭

boolean waitForWebElement (By by [, int minimumNumberOfMatches, int timeout, boolean scroll])

等待某个web控件载入以进行下一步操作

参数:

by-定位web控件的by属性

minimumNumberOfMatches-最小指定多少才可以往下进行,0表示1个或者多个

timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒

scroll-是否允许滚动搜索,true表示支持,false表示只能在当前屏幕内查找

返回:

true-在失效时间前出现了web控件

false-过了失效时间仍未找到

boolean waitForFragmentById (int id [, int timeout])

等待Fragment载入以进行下一步操作,以id定位Fragment

参数:

id-定位Fragment的id

timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒

返回:

true-在失效时间前出现了Fragment

false-过了失效时间仍未找到

boolean waitForFragmentByTag (String id [, int timeout])

等待Fragment载入以进行下一步操作,以tag定位Fragment

参数:

tag-定位Fragment的tag

timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒

返回:

true-在失效时间前出现了Fragment

false-过了失效时间仍未找到

boolean waitForLogMessage (String logMessage [, int timeout])

等待日志信息载入以进行下一步操作

参数:

logMessage-等待加载的日志

timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒

返回:

true-在失效时间前出现了logMessage

false-过了失效时间仍未找到

boolean waitForCondition (Condition condition, int timeout)

等待某种条件加载以进行下一步操作

参数:

condition-需要满足的条件

timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒

返回:

true-在失效时间前出现了满足condition的条件

false-过了失效时间仍未找到

注:Condition是一个interface,里面只有一个方法isSatisfied () ,用于多条件的等待

【转载:http://blog.csdn.net/tt75281920/article/details/26947017】

Robotium API -- 等待执行的方法sleep、waitFor的更多相关文章

  1. ASP.NET Web API 控制器执行过程(一)

    ASP.NET Web API 控制器执行过程(一) 前言 前面两篇讲解了控制器的创建过程,只是从框架源码的角度去简单的了解,在控制器创建过后所执行的过程也是尤为重要的,本篇就来简单的说明一下控制器在 ...

  2. Web jquery表格组件 JQGrid 的使用 - 4.JQGrid参数、ColModel API、事件及方法

    系列索引 Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引 Web jquery表格组件 JQGrid 的使用 - 4.JQGrid参数.ColModel API.事件 ...

  3. Android常用控件及对应Robotium API

    最近发现Android控件不熟悉,看Robotium的API都费劲. 常用Android控件: 控件类型 描述 相关类 Button 按钮,可以被用户按下或点击,以执行⼀个动作 Button Text ...

  4. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【五】——在Web Api中实现Http方法(Put,Post,Delete)

    系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 在Web Api中,我们对资源的CRUD操作都是通过相应的Http方法来实现——Post(新 ...

  5. 微信JS-SDK“分享信息设置”API及数字签名生成方法(NodeJS版本)

    原文:微信JS-SDK"分享信息设置"API及数字签名生成方法(NodeJS版本) 先上测试地址以示成功: 用微信打开下面地址测试 http://game.4gshu.com/de ...

  6. Web Api中实现Http方法(Put,Post,Delete)

    在Web Api中实现Http方法(Put,Post,Delete) 系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 在Web Api中,我 ...

  7. 如何同时完成多个ajax之后再执行某个方法 ? 使用$.when().done();

    jQuery中的$.when()方法比较复杂,这里不作全面讲解,只写一个同时完成多个ajax请求后执行操作的方法. 有时候我们需要等待多个ajax执行完以后,再执行某个操作. 写法如下: $.when ...

  8. 多线程--wait()和notify(),Thread中的等待和唤醒方法

    package com.thread.test; public class SimpleMN { final static Object object = new Object(); public s ...

  9. 基于DOMContentLoaded实现文档加载完成后执行的方法

    我们有时可能需要一些在页面加载完成之后执行的方法,其实js原生就提供了onload方法,所以我们最简单的办法就是直接给onload赋值一个函数,在页面加载完成之后就会自动执行 widnow.onloa ...

随机推荐

  1. OC - 19.pthread和NSThread

    简介 恰当的使用多线程编程可以提供任务的执行效率和系统资源的利用率 多线程是为了提高资源利用率,和应用程序的响应速度,多个线程共享应用资源 每个应用程序都有一个主线程,通常用来做UI界面刷新等 比较耗 ...

  2. JavaScript--数组--关联(hash)数组

    关联(hash)数组的原理: hash算法: 接收一个字符串,计算出一个尽量不重复的序号 不同的字符串,计算出的序号尽量不同 相同的字符串,计算出的序号一定是相同 存入数据时: 将自定义下标名称交给h ...

  3. python正则表达式之使用规则

         正则表达式在我看来是提供一个模板,将待匹配的字符串与模板匹配,匹配不到则返回为空,匹配成功根据需要返回匹配的字符串. 正则表达式比字符串本身的功能要强一点,当然性能上略有不如. 我们使用正则 ...

  4. 【HAOI2011】向量

    [题目描述] 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个 ...

  5. jquery validate 配合ligerui使用

    这样当单击登录按钮时右边会弹出一个小框框,同时显示jquery扩展的下面那段代码错误内容,当添加内容正确后小框框消失,lable换成error也行 $("#form1").vali ...

  6. Python环境配置及项目建立

    一.安装Python Python比较稳定的两个版本是Python 3.5和Python 2.7,我用的是Python 2.7,下载地址是:https://www.python.org/downloa ...

  7. Delphi笔记(GL_Scene安装及简单使用)

    前一段时间,需要弄一个四轴的监控平台,看了匿名的上位机后,十分感兴趣.于是我也想自己也弄一个上位机来玩玩,在将串口通讯调好了以后,就开始好奇那个3D模型是怎么弄的.在网上面查找了很多资料,由于我用的是 ...

  8. C++explicit关键字

    在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换. explicit使用注意事项: *     explicit  ...

  9. Android模拟器Genymotion安装向导

    Genymotion简述 Genymotion提供Android虚拟环境的工具集.相信很多Android开发者一定受够了速度慢.体验差效率及其地下的官方模拟器了.如果你没有物理机器,又不想忍受官方模拟 ...

  10. 处理 InnerException 最佳方案?

    如何获取 innerException 内部错误信息 String innerMessage = (ex.InnerException != null) ? ex.InnerException.Mes ...