手机自动化测试:Appium源码分析之跟踪代码分析七
手机自动化测试:Appium源码分析之跟踪代码分析七
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。poptest推出手机自动化测试的课程,讲解appuim的实际应用,培训全程用商业项目, 大家可以加qq群进行交流:195983133。
该模块中定义了36种不同的状态,以及状态的解释信息,还有一个模块方法,这个模块相对简单
36种状态
1个json字符串定义了36个元素,每一元素代表了一个状态,每一个状态有一个名称,然后对应一个json字符串,该json字符串中有code值和summary值:code为整形,summary值为string字符串。
var codes = {
Success: {
code: 0,
summary: 'The command executed successfully.'
},
NoSuchDriver: {
code: 6,
summary: 'A session is either terminated or not started'
},
NoSuchElement: {
code: 7,
summary: 'An element could not be located on the page using the given search parameters.'
},
NoSuchFrame: {
code: 8,
summary: 'A request to switch to a frame could not be satisfied because the frame could not be found.'
},
UnknownCommand: {
code: 9,
summary: 'The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource.'
},
StaleElementReference: {
code: 10,
summary: 'An element command failed because the referenced element is no longer attached to the DOM.'
},
ElementNotVisible: {
code: 11,
summary: 'An element command could not be completed because the element is not visible on the page.'
},
InvalidElementState: {
code: 12,
summary: 'An element command could not be completed because the element is in an invalid state (e.g. attempting to click a disabled element).'
},
UnknownError: {
code: 13,
summary: 'An unknown server-side error occurred while processing the command.'
},
ElementIsNotSelectable: {
code: 15,
summary: 'An attempt was made to select an element that cannot be selected.'
},
JavaScriptError: {
code: 17,
summary: 'An error occurred while executing user supplied JavaScript.'
},
XPathLookupError: {
code: 19,
summary: 'An error occurred while searching for an element by XPath.'
},
Timeout: {
code: 21,
summary: 'An operation did not complete before its timeout expired.'
},
NoSuchWindow: {
code: 23,
summary: 'A request to switch to a different window could not be satisfied because the window could not be found.'
},
InvalidCookieDomain: {
code: 24,
summary: 'An illegal attempt was made to set a cookie under a different domain than the current page.'
},
UnableToSetCookie: {
code: 25,
summary: 'A request to set a cookie\'s value could not be satisfied.'
},
UnexpectedAlertOpen: {
code: 26,
summary: 'A modal dialog was open, blocking this operation'
},
NoAlertOpenError: {
code: 27,
summary: 'An attempt was made to operate on a modal dialog when one was not open.'
},
ScriptTimeout: {
code: 28,
summary: 'A script did not complete before its timeout expired.'
},
InvalidElementCoordinates: {
code: 29,
summary: 'The coordinates provided to an interactions operation are invalid.'
},
IMENotAvailable: {
code: 30,
summary: 'IME was not available.'
},
IMEEngineActivationFailed: {
code: 31,
summary: 'An IME engine could not be started.'
},
InvalidSelector: {
code: 32,
summary: 'Argument was an invalid selector (e.g. XPath/CSS).'
},
SessionNotCreatedException: {
code: 33,
summary: 'A new session could not be created.'
},
MoveTargetOutOfBounds: {
code: 34,
summary: 'Target provided for a move action is out of bounds.'
},
NoSuchContext: {
code: 35,
summary: 'No such context found.'
}
};
一个模块方法
if (typeof module !== "undefined") {
//首先将codes所指的json字符串赋值给模块对象codes(可以供外部调用)
module.exports.codes = codes;
//然后定义供外部调用的函数getSummaryByCode
module.exports.getSummaryByCode = function (code) {
//以10进制来解析code
code = parseInt(code, 10);
for (var c in codes) {
if (typeof codes[c].code !== "undefined" && codes[c].code === code) {
//根据code值找到对应的summary描述信息
return codes[c].summary;
}
}
return 'An error occurred';
};
}
当其他模块加载status模块的时候,该模块自身会检查是否已经初始化过了,如果没有初始化,那就需要执行if方法体的代码。if方法就是将保存36种状态的json字符串串提供给外界,且提供了一个根据code值找到summary值的函数getSummaryByCode。
手机自动化测试:Appium源码分析之跟踪代码分析七的更多相关文章
- 手机自动化测试:Appium源码分析之跟踪代码分析九
手机自动化测试:Appium源码分析之跟踪代码分析九 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家 ...
- 手机自动化测试:Appium源码分析之跟踪代码分析八
手机自动化测试:Appium源码分析之跟踪代码分析八 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家 ...
- 手机自动化测试:Appium源码分析之跟踪代码分析六
手机自动化测试:Appium源码分析之跟踪代码分析六 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest推出手机自 ...
- 手机自动化测试:Appium源码分析之跟踪代码分析五
手机自动化测试:Appium源码分析之跟踪代码分析五 手机自动化测试是未来很重要的测试技术,作为一名测试人员应该熟练掌握,POPTEST举行手机自动化测试的课程,希望可以训练出优秀的手机测试开发工 ...
- 手机自动化测试:appium源码分析之bootstrap三
手机自动化测试:appium源码分析之bootstrap三 研究bootstrap源码,我们可以通过代码的结构,可以看出来appium的扩展思路和实现方式,从中可以添加我们自己要的功能,针对app ...
- 手机自动化测试:appium源码分析之bootstrap二
手机自动化测试:appium源码分析之bootstrap二 在bootstrap项目中的io.appium.android.bootstrap.handler包中的类都是对应的指令类, priva ...
- 手机自动化测试:appium源码分析之bootstrap一
手机自动化测试:appium源码分析之bootstrap一 前言: poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.popte ...
- 手机自动化测试:appium源码分析之bootstrap十七
手机自动化测试:appium源码分析之bootstrap十七 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...
- 手机自动化测试:appium源码分析之bootstrap十六
手机自动化测试:appium源码分析之bootstrap十六 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...
随机推荐
- 构建Docker平台【第二篇】安装 Docker
第一步:上传安装包和 docker 镜像 1.安装包: docker-engine-1.12.1-1.el7.centos.x86_64.rpm docker-engine-selinux-1.12. ...
- NodeJs之crypto
NodeJs版本:4.4.4 crypto nodejs提供了内置加密模块crypto. 加密模块提供了 HTTP 或 HTTPS 连接过程中封装安全凭证的方法. 它也提供了 OpenSSL 的哈希, ...
- Sublime Text3安装、注册、插件安装教程
在前端开发中,有很多软件供我们使用:大名鼎鼎的WebStorm,老而弥坚的Dreamweaver,后起之秀Hbuilder,还有小清新Sublime Text.......等等.作为新手, ...
- 第三方库FMDB的使用
1.FMDB简介 什么是FMDB FMDB是iOS平台的SQLite数据库框架,FMDB以OC的方式封装了SQLite的C语言API. 为什么使用FMDB 使用起来更加面向对象,省去了很多麻烦.冗余的 ...
- linux 下rabbitmq 安装
准备工作: erlang环境 otp_src_19.0.tar.gz rabbitmq abbitmq-server-generic-unix-3.6.5.tar.xz # yum -y ins ...
- JavaWeb从0开始学(一)-----搭建第一个Web应用程序与JSP工作原理
以往学习的时候大多是看完书或者看完视频,动手实践一下就OK了.然而过了一段时间我发现东西都忘差不多了,需要复习才能重新掌握.现在开始学习JavaWeb了,我将在这里记录自己的学习的一点一滴,不仅便于自 ...
- 迷茫<第一篇:初到北京>
时光如梭,毕业四年了,遥想当年刚毕业的场景就像是昨天发生一样,这四年的人生,就是在不停的漂泊,不断的受挫.感慨良多,一言难以说尽. 2013年11月29号毕业,刚到北京的第二天我就顺利的找到了工作, ...
- UVa 1588 换抵挡装置
前言 题目 大意是说,两个槽能够插在一起,并保证每一列的高度不高于3,保证最短长度. 思路 思路很简单,取短字符串遍历长字符串的每一个位置,纪录下位置,并取最短即可. 实现 //习题3-11 换抵挡装 ...
- 关于JAVA中抽象类和接口的区别辨析
今天主要整理一下新学习的有关于Java中抽象类和接口的相关知识和个人理解. 1 抽象类 用来描述事物的一般状态和行为,然后在其子类中去实现这些状态和行为.也就是说,抽象类中的方法,需要在子类中进行重写 ...
- Sersync实时同步
sersync会对目录进行监控,将变化的目录或文件同步到远程服务器.sersync是递归监控的,如果有多级目录 ,都会同步到远程服务器. sersync依赖于rsync进行同步,在同步主服务器上开启s ...