uiautomator-----UiWatcher监听器
一、UiWatcher类说明
1、Uiwatcher用于处理脚本执行过程中遇到非预想的步骤
2、UiWatcher使用场景
1)测试过程中来了一个电话
2)测试过程中来了一条短信
3)测试过程中闹钟响了
4)出现各种非预想的步骤
3、中断监听检查条件
public boolean checkForCondition();
二、UiWatcher监听器操作相关API
在测试框架无法找到一个匹配时,使用UiSelector测试框架将自动调用此处理程序方法。在超时未找到匹配项时,框架调用checkForCondition()方法查找设备上的所有已注册的监听检查条件。可以使用此方法来处理中断问题保证测试用例正常运行。
| 返回值 | API | 说明 |
| void | registerWatcher(String name,Uiwatcher watcher) | 注册一个监听器,当Uiselector无法匹配到对象的时候,触发监听器 |
| void | removeWatcger(String name) | 取消之前注册的指定监听器 |
| void | resetWatcherTriggers() | 充值已触发过的UiWatcher,重置后相当于没运行过 |
| void | runWatchers() | 强制运行所有的监听器 |
三、注册监听器示例代码
public void testDemo() throws IOException, UiObjectNotFoundException {
////////////////////注册监听器////////////////
/////////////////////////////////////////////
UiDevice.getInstance().registerWatcher("phone",new UiWatcher(){
@Override
public boolean checkForCondition(){
//电话监听
UiObject call = new UiObject(new UiSelector().resourceId("com.android.incallui:id/unlock_answer_text").text("接听"));//由接听按钮判断为来电
UiObject call_reject = new UiObject(new UiSelector().resourceId("com.android.incallui:id/unlock_reject"));//挂断按钮
if(call.exists()){
System.out.println("电话监听器被触发啦!!!!");
try{
call_reject.click();
return true;
}catch(UiObjectNotFoundException e){
e.printStackTrace();
}
}
return false;
}
} );
////////////监听器注册移除////////////
/////////////////////////////////////
UiDevice.getInstance().removeWatcher("phone");//移除之后,后面的测试过程中有电话拨进来,不会调用监听器
////////////////////////////////////////////////////
/////////////////常规测试用例开始///////////////////
//////////////////////////////////////////////////
}
| 返回值 | API | 说明 |
| boolean | hasAnyWatcherTriggered() | 检查是否有监听器触发过 |
| boolean | hasWatcherTriggered(String watcgerName) | 检查某个特定的监听器是否触发过 |
//////////检查监听器是否被触发过/////////////
///////////////////////////////////////////
System.out.println("是否有监听器触发过:" + UiDevice.getInstance().hasAnyWatcherTriggered());
System.out.println("电话监听器是否被触发过:" + UiDevice.getInstance().hasWatcherTriggered("phone"));
注意一:
检查监听器代码卸载所有的正常测试用例代码之后,在测试完成之后,打印是否触发过监听器。
uiautomator-----UiWatcher监听器的更多相关文章
- Android无线测试之—UiAutomator UiWatcher API介绍一
UiWatcher类介绍与中断监听检查条件 一.UiWatcher类说明 1.Uiwatcher用于处理脚本执行过程中遇到非预想的步骤 2.UiWatcher使用场景 1)测试过程中来了一个电话 2) ...
- [uiautomator篇] UiWatcher的使用
//package com.softwinner.pad.mark3d; package com.softwinner.performance.benchmark.mark3d; import and ...
- [uiautomator篇] 基类
package com.softwinner.performance.benchmark; /** * UiAssistant public class * @author liuzhipeng ...
- UI Automator 常用 API 整理
主要类: import android.support.test.uiautomator.UiDevice; 作用:设备封装类,测试过程中获取设备信息和设备交互. import android.sup ...
- UI Watcher 解决不定时弹窗问题
缘来是你: 在基于UI谷歌库的测试系统对第三方APK测试例,存在不定时弹窗问题,对测试例的健壮性和稳定性产生了很大影响. 为了解决这个问题,谷歌开源了UIwatcher 类来解决此问题. 附谷歌官网类 ...
- Uiautomator 2.0之UiWatcher类学习小记
1. 主要功能 使用此方法可以处理中断问题,从而保证测试用例的正常运行. 2. 相关API API 说明 registerWatcher (String name, UiWatcher watcher ...
- [uiautomator篇]uiwatcher 的使用场景
http://www.yangyanxing.com/article/use-watcher-in-uiautomator.html 今天在uiautomator中实践了watcher的用法,这个 ...
- UiAutomator自动化测试框架介绍
UiAutomator自动化测试框架介绍 环境搭建 1 必要条件 1.1 JDK 1.2 SDK(API高于15) 1.3 Eclipse 2 ...
- android app自动化测试之UIAutomator
一.UIAutomator Android自动化测试工具有很多,但是要免费.易上手,本人觉得就直接使用Eclipse自带的UIAutomator就不错.测试人员无需跟开发要代码信息,只要手机上有安装之 ...
随机推荐
- 冰冻三尺非一日之寒--web框架Django
1.JS 正则 test - 判断字符串是否符合规定的正则 rep = /\d+/; rep.test("asdfoiklfasdf89asdfasdf ...
- [转]Pythoin中的Lambda表达式
引用自:http://www.cnblogs.com/evening/archive/2012/03/29/2423554.html 在学习python的过程中,lambda的语法时常会使人感到困惑, ...
- BeautifulSoup :功能使用
# -*- coding: utf-8 -*- ''' # Author : Solomon Xie # Usage : 测试BeautifulSoup一些用法及容易出bug的地方 # Envirom ...
- Collection集合的功能及总结
Collection集合是集合顶层接口,不能实例化 功能 1.添加功能 boolean add(Object obj):添加一个元素 boolean addAll(Collection c):添加一个 ...
- 【转】PHP中获取当前系统时间、时间戳
今天写下otime($time, $now)为将时间格式转为时间戳,$time为必填.清楚了这个,想了解更多,请继续往下看. 3. date($format)用法比如:echo date('Y-m-d ...
- sqlserver多文件组数据库的备份和还原实战
数据库文件过大时就要进行数据分区,就是讲数据库拆分到多个文件组中.已方便数据文件管理,提高数据库的读取效能,多文件组如何进行数据库的备份和还原呢,今天主要做多文件组数据库的备份和还原实验. 第一步 创 ...
- OperateLoger
protected void Page_Load(object sender, EventArgs e) { OperateLoger.FunctionInfo =new FunctionInfo { ...
- JS提交对象数组到服务端的方法总结(C#实例)
*转载请注明出处: 作者:willingtolove: 本文链接:http://www.cnblogs.com/willingtolove/p/4741549.html 正文: 1. 方法一:利用aj ...
- hdu1282回文数猜想
Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其 ...
- PJAX的实现与应用
一.前言 web发展经历了一个漫长的周期,最开始很多人认为Javascript这们语言是前端开发的累赘,是个鸡肋,那个时候人们还享受着从一个a链接蹦 到另一个页面的web神奇魔术.后来随着JavaSc ...