老李分享:接电话之uiautomator 2
case解释
首先要了解进入uiwatcher方法中的机制,是在你某个控件找不到的情况下会进入。但是你得保证进入以后处理完来电界面以后,这条case得保证正确,那么说明回来以后这个控件要能找到。刚开始的时候,我认为来电后,点击接听,会出现通话画面,这个时候我们来判断该界面上的某一个控件是否存在,这样我们就能保证这条case执行完毕了。但是实验后,是不可以的。uiautomator只会在开始的界面上寻找,像通话界面它只会认为它是个弹出框。所以它会认为case执行失败。
所以后来我想到的解决方案是首先在主页面上找一个控件,点击后是没反应的,这样我就循环去点击。设定一个超时时间和一个标志位flag,让case一直等待着。当来电界面触发后,会进入uiwatcher后,处理完来电界面后,将标志flag设置为false。这样回来后这个控件仍然存在,但是这个时候flag已经为false。所以就不会再循环点击主界面上的控件了。case也会被认为是执行成功了,当不再进入循环后,我们判断一下flag的值。如果为true。说明没有被改变,那么也就没有接收到来电的界面。这个时候也应该判断为case失败。
执行case后的输出
[exec] INSTRUMENTATION_STATUS: numtests=1
[exec] INSTRUMENTATION_STATUS: stream=
[exec] com.sprd.test.uiautomator.call.InCallTest:
[exec] INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner
[exec] INSTRUMENTATION_STATUS: test=test_Call
[exec] INSTRUMENTATION_STATUS: class="com".sprd.test.uiautomator.call.InCallTest
[exec] INSTRUMENTATION_STATUS: current=1
[exec] INSTRUMENTATION_STATUS_CODE: 1
[exec] waiting for incoming
[exec] you have a call
[exec] INSTRUMENTATION_STATUS: numtests=1
[exec] INSTRUMENTATION_STATUS: stream=.
[exec] INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner
[exec] INSTRUMENTATION_STATUS: test=test_Call
[exec] INSTRUMENTATION_STATUS: class="com".sprd.test.uiautomator.call.InCallTest
[exec] INSTRUMENTATION_STATUS: current=1
[exec] INSTRUMENTATION_STATUS_CODE: 0
[exec] INSTRUMENTATION_STATUS: stream=
[exec] Test results for WatcherResultPrinter=.
[exec] Time: 17.053
[exec] OK (1 test)
[exec] INSTRUMENTATION_STATUS_CODE: -1
BUILD SUCCESSFUL
后续的扩展
既然能监听到来电,那么下一步要实现控制2台机器实现A给B打电话的功能。这个要用到框架啦。
老李分享:接电话之uiautomator 2的更多相关文章
- 老李分享:接电话扩展之uiautomator 1
老李分享:接电话扩展之uiautomator poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq ...
- 老李分享:接电话之uiautomator 1
老李分享:接电话之uiautomator poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:9 ...
- 老李分享:接口测试之jmeter
老李分享:接口测试之jmeter poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.移动端自动化测试很多人把他仅仅理解成appu ...
- 老李分享:持续集成学好jenkins之内置命令
老李分享:持续集成学好jenkins之内置命令 Jenkins命令调用方式:调用Jenkins命令设置job的描述信息. $JAVA_BIN-jar "$JENKINS_CLI_JAR& ...
- 老李分享:持续集成学好jenkins之安装
老李分享:持续集成学好jenkins之安装 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...
- 老李分享:持续集成学好jenkins之解答疑问
老李分享:持续集成学好jenkins之解答疑问 poptest(www.poptest.cn)在培训的过程中使用jenkins搭建持续集成环境,让学员真正交流持续集成到底是什么,怎么去做的. Je ...
- 老李分享:持续集成学好jenkins之Git和Maven配置
老李分享:持续集成学好jenkins之Git和Maven配置 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...
- 老李分享:https协议
老李分享:https协议 最近我们看到很多站点使用 HTTPS 协议提供网页服务.通常情况下我们都是在一些包含机密信息的站点像银行看到 HTTPS 协议. 如果你访问 google,查看一下地址栏 ...
- 老李分享:webservice是什么?
老李分享:webservice是什么? 前言 Web Services 是 Web 应用出于和其他 Web 应用以交互数据为目的的开放式标准(XML.SOAP.HTTP 等).Web Servic ...
- 老李分享: JSON
老李分享: JSON poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478, ...
随机推荐
- Kickstart Practice Round 2017 Google
Problem B. Vote A and B are the only two candidates competing in a certain election. We know from po ...
- JSON - 使用cJSON 解析Qt通过UDP发送的JSON数据
1,cJSON支持在C程序中创建和解析JSON数据,其提供多种方法供C程序使用,最直接的是将cJSON.c和cJSON.h加入到C工程中,源代码:https://github.com/DaveGamb ...
- 用canvas的arc绘制时钟
在页面上加入canvas标签: <body> <canvas id="c1" width="600px" height="600px ...
- 学习笔记——Java核心技术之接口、继承与多态练习题
1.创建一个抽象类,验证它是否可以实例化对象. package com.lzw; public abstract class UseCase3 { abstract void doit(); publ ...
- 2017-2-18 net 输入输出语句
控制台程序的创建,输出,输入语句,定义变量,变量赋值,值覆盖,值拼接,值打印两种数据类型,整形类型转换 知识点: 1.输出语句 Console.WriteLine("");光标换行 ...
- Asp.Net MVC 之 Autofac 初步使用3 集成web api
今天我们试着在WebApi2实现autofac的注入,关于这方面也是看了几位园友的分享省了不少时间,所以结合着前篇的demo再新建webapi进行... 一样开篇还是发下大概demo结构: 还是nug ...
- 2017-3-10 SQL server 数据库 T--SQL语句
创建数据库:create datebase 数据库名 注:数据库名不能为中文,不能数字开头,不能符号开头. 删除数据库:drop datebase 数据库名 创建表:create tab ...
- Python 之 json 模块
引言 对于做web开发的人来说,json文本必须要熟知与熟练使用的.大部分网站的API接口调用返回的数据,就是json格式的.如果看json对象所包含的内容,相信对熟悉Python的人开说,很快就能把 ...
- wemall app商城源码Android之支付宝接口公用函数
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之 ...
- conky 1.10以后的新配置格式
包装 config conky.config = { ... } 包装 TEXT conky.text = [[ ... ]] 每个 config 选项的变量和取值之间插入 "=" ...