老李分享:接电话之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, ...
随机推荐
- 《JavaScript DOM 编程艺术》
前几天京东买了一本书,在豆瓣上好评如潮,买下了啃一啃,书名<JavaScript DOM 编程艺术>,在好好深造一下javaScript.一边啃,一边敲.当然应该要做好笔记.一些简单的就看 ...
- SDOI Day2
今天做了SDOI Day2 觉得自己萌萌哒= =题目真的有点水,一点编程复杂度都没有 T1:星际战争 描述:http://www.lydsy.com/JudgeOnline/problem.php?i ...
- android学习10——对顶点着器和片段着色器的理解
图形都是点,线,面组成的.顶点着器指定了顶点的位置,大小和颜色. 看一个顶点着色器的代码 attribute vec4 a_Position; attribute float a_PointSize; ...
- POJ 2396 Budget 有上下界的网络流
POJ 2396 Budget 题意简述:给定矩阵(每个元素都是非负整数)各行各列的和,并且限制其中的某些元素,给出一个可行解,特殊评测.矩阵规模小于200*20. 网络流的模型是显而易见的,不过对 ...
- javascript小程序——用嵌套循环来输出乘法口诀表
在学习javascript过程中,一开始接触循环语句时一般拿乘法口诀表来练手,这里我将自己的练习贴在这里,希望能给和我一样的初学者些许帮助,也希望大神们能够不吝指教. 首先,来看一下乘法口诀表是什么样 ...
- windows 2003装.net 4.0时提示 WIC windows Imaging Component
运行此安装程序之前,必须安装32位windows映像处理组件(WIC) WIC windows Imaging Component下载地址: http://download.microsoft.com ...
- Server push(服务器推送技术)
一.服务器推送技术Server Push详解: 推送技术Server Push的基础思想是将浏览器主动查询信息改为服务器主动发送信息.服务器发送一批数据,浏览器显示这些数据,同时保证与服 ...
- MAVEN学习(初级)
1. 项目管理利器 MAVEN 学习,参考慕课网 :http://www.imooc.com/search/?words=maven 2. 下载MEAVN 地址:http://maven.apache ...
- 微信小程序之提高应用速度小技巧
作者:vicyao, 腾讯web前端开发 高级工程师商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. 原文链接:http://wetest.qq.com/lab/view/294.htm ...
- BOM基础(三)
在我之前关于DOM的文章里,其实已经有提到过事件的概念.在讲事件之前,首先要知道的就是javascript是由事件驱动的.什么叫事件驱动呢?打个比方,比如我们在页面中点击一个按钮,才会跳出一个窗口或者 ...