使用appium框架测试安卓app时,如果需要获取toast弹框的文案内容,那么再点击弹框按钮之前,一定记得千万不要加time.sleep()等待时间,否则有延迟,一直获取不到: 获取弹框的代码: message=self.driver.find_element_by_xpath("//*[contains(@text,'成功添加到购物车')]")  …
微信和QQ的每日步数最近十分火爆,我就想为自己写的项目中添加一个显示每日步数的功能,上网一搜好像并有相关的详细资料,自己动手丰衣足食. 统计步数信息并不需要我们自己去实现,iOS自带的健康app已经为我们统计好了步数数据 我们只要使用HealthKit框架从健康app中获取这个数据信息就可以了 这篇文章对HealthKit框架进行了简单的介绍:http://www.cocoachina.com/ios/20140915/9624.html 对HealthKit框架有了简单的了解后我们就可以开始了…
引起原因:弹框的定位采取position:fixed,而ios(safari)对定位属性position:fixed的解析不一致导致. 解决方案: 方案一 一开始上网找解决方案,找到如下处理方式.但存在当页面出现滚动条时,弹框弹出后,页面回滚至顶部.在不改变原有弹框代码的情况下,有效地解决光标错位问题,但严重影响用户使用,只能忍痛舍去~ //弹框弹出后执行如下代码 $('body').css({'position': 'fixed', 'width': '100%'}); //弹框关闭后执行如下…
转载原文:https://www.jianshu.com/p/efe9dcf8bbaf 一.定位工具 在安装appium环境的时候我们已经安装了SDK,里面就自带有元素定位的工具,位置在.../sdk/tools/uiautomatorviewer.bat,由于安装路径各有不同,如果实在找不到可以具体路径,可以在电脑中查找uiautomatorviewer.bat文件,找到后双击打开即可,初始界面如下:       打开工具后,将手机连接电脑,这里要提醒的是,该工具只能获取手机当前的界面截图,而…
一.toast元素 1.表现形式:toast元素就是下图中  “操作成功” 那个一闪而过的标签. 2.特殊点:因为一闪而过,时间太短,用UIAutomatorView截屏截不到. 二.获取方法 1.用xpath语法获取标签的  text 属性(注意是“属性”,不像web一样,web中,text一般标签的内容:而在APP中,text是标签的属性 ). //*[contains(@text,"toast标签的文本内容")]…
统计步数信息并不需要我们自己去实现,iOS自带的健康app已经为我们统计好了步数数据 我们只要使用HealthKit框架从健康app中获取这个数据信息就可以了 1.如下图所示 在Xcode中打开HealthKit功能 2.在需要的地方#import <HealthKit/HealthKit.h>(这里我为了方便直接在viewController写了所有代码,我也在学习这个框架,个人感觉把获取数据权限的代码放在AppDelegate中更好) 获取步数分为两步1.获得权限  2.读取步数 3.代码…
目录 1.toast介绍 2.toast定位 3.示例 4.封装toast判断 1.toast介绍 Android中的toast是一种简易的消息提示框,toast提示框不能被用户点击,会根据所设置的显示时间自动消失. toas要appium1.6.3以上版本才支持,appium1.4的版本就别浪费时间了. 再来看下toast长什么样,像这种弹出来的消息"再按一次退出百度App",这种消息提示框就是toast了. 如下图所示: 2.toast定位 toast定位需要添加两步操作: 添加启…
本文介绍一下自定义行间距的UILabel的高度如何获取,需要借助一下开源的UILabel控件:TTTAttributedLabel 附下载地址 https://github.com/TTTAttributedLabel/TTTAttributedLabel 下载后,添加到工程里面,导入头文件 #import "TTTAttributedLabel.h" 直接上代码 NSString *str = @"UILabel自定义行间距时获取高度,UILabel自定义行间距时获取高度,…
本文介绍一下自定义行间距的UILabel的高度如何获取,需要借助一下开源的UILabel控件:TTTAttributedLabel 附下载地址 https://github.com/TTTAttributedLabel/TTTAttributedLabel 下载后,添加到工程里面,导入头文件 #import "TTTAttributedLabel.h" 直接上代码 NSString *str = @"UILabel自定义行间距时获取高度,UILabel自定义行间距时获取高度,…
1.安卓环境搭建 &关于app自动化,个人觉得安装过程比较复杂,脚本难度实现和web自动化差不多封装关键字即可,因此,下面会写安装.启动APP以及过程中遇到的一些坑(这一篇偏向解释给个人) &目前appium环境搭建我还是比较喜欢根据虫师写的,搭建app自动化,之前搭过几次基本没啥问题而且也给出了下载链接 https://www.cnblogs.com/fnng/p/4540731.html 1.1https://nodejs.org/ 下载windows msi文件安装下一步到最后即可(…
篇4                 安卓app自动化测试-Appium API进阶 --lamecho辣么丑 1.1概要 大家好! 我是lamecho(辣么丑),今天是<安卓app自动化测试>的第四篇,可以说是使用appium的进阶,本篇不去纠结如何去找界面元素(不明白的同学移步到我的上一篇学习)而是主要根据手机app的特性,介绍有关的操作方法,比如如何锁屏如何在锁屏后点亮屏幕并做手势解锁等等类似的操作实现. 1.2 appium玩转安卓手机 智能手机发展到今天,形成了一整套有关手势操作的操…
一  自动化工具简介 1 Appium : 开源,跨平台的自动化测试工具,用于测试Native(原生)和Hybrid(混合)应用,支持IOS/Android/FirefoxOS 平台. 2  环境 :  在不同平台中,Appium是基于不同框架的,Android平台中是基于Uiautomator框架的 3  理念: 无需重新编译应用(和instrumentation对比,无需源码就可实现测试过程): 不局限与语言和框架: 无需重复造轮子,接口统一 必须开源 4 特点: 跨架构:Native,Hy…
最近较懒,加之闺女出生后记忆没完全恢复,总是忘东忘西,关于安卓APP测试的验证点还是总结一下,方便设计测试用例时查阅,也给各位博友参考! 1.除APP的正常功能点外,还有以下验证点: 安装/卸载(考虑是否清数据) 升级(考虑卸载重新安装.覆盖安装升级.通过无忧通知升级.在线检测新版升级) 升级后新旧数据的兼容性 网络切换是否有相应提示说明?比如wifi切换到正常网络 程序进入输入功能时,是否正常弹出键盘?键盘是否遮挡输入框?键盘的输入法切换 是否有菜单项 home和程序间多次切换 返回上一级操作…
篇2              安卓app自动化测试-初识python调用appium --lamecho辣么丑 1.1概要 大家好!我是lamecho(辣么丑),上一篇也是<安卓app自动化测试>的第一篇将使用appium的准备环境做了详细的阐述.在文章结尾也提到了本篇将会对appium的相关配置,到连接真机,最后实现一个python小demo,这样本篇就类似于编程的第一课HelloWorld.如何用python连接到appium,实现在手机上对app的操作呢?一切还是以实战为主,今天我将对…
学习牛人经验,结合自己的测试,做简单总结: 简介:安卓APP安全测试目前主要覆盖以下方面:1)自身组件安全2)本地敏感数据保护3)web接口安全 一.自身组件安全目前手动.开源或免费工具均能检测此类漏洞.开源工具推荐:drozer免费工具推荐:360捉虫猎手.爱加密.阿里聚安全 当然扫描结果和漏洞扫描结果一样,存在误报,需要测试者自己排除.以图中360捉虫猎手为例,“Service组件暴露”误报: 但实际上在AndroidManifest.xml中,已经声明了相关的权限: <uses-permi…
转自 https://blog.csdn.net/elementFei/article/details/72917393 感谢 问题: 使用mui框架开发App,当input获取焦点时,键盘弹出,底部导航栏上升.解决: //获取当前页面(在子页面上书写)var ws;if(window.plus) {plusReady();}else {document.addEventListener(“plusready”, function() {plusReady();}, false);}functi…
技术背景: 我的一个项目做的的是图片处理,用 python 实现图片处理的核心功能后,想部署到安卓app中,但是对于一个对安卓和服务器都一知半解的小白来说要现学的东西太多了. 而实际上,我们的项目要求并不算高,以我现有的知识也是能实现相应功能的,所以我将在本文记录下一次没用到任何服务器框架的服务器搭建经历. 需要的技术: <java>,<socket>,<android> 确切的说只要你会java,就能实现你想要的所有功能了.因为android是基于java的,其使用的…
一般首次启动一个手机App时都会有系统权限弹框,如下图所示: 权限弹窗上面的按钮都是固定的,只需要定位到“ALLOW”按钮,点击就可以了,代码如下: 这里主要用selenium里面的显示等待模块(WebDriverWait)和判断模块(expected_conditions)来定位,所有需要导入相应模块~…
产品美美的给小伙伴提了一个需求,当程序从后台进入前台时,如果是指定的页面,则弹出提示框. 大家首先想到的方法就是通过 AppDelegate.h 进行控制,相对复杂的步骤就是 在程序进入后台时对当前页面进行存储,然后在从后台进入前台再判断是否是符合条件的页面,判断是否弹框.基本思想就是这样 然后 我就开始需找新的方法,然后我就开始了新的实践 新方法 比较适用于匹配页面较少的情况, 对单个UIViewController进行监听 方法来源:http://www.shangxueba.com/jin…
注:本篇博文转载于 http://my.oschina.net/mengshuai/blog/541314?fromerr=z8tDxWUH 本文介绍了文章作者从事了几年android应用的开发,经历2次架构变革,第一次集成了RxJava第二次集成了MVP,并将RxJava与MVP完美结合,实现了低耦合,代码简单,测试方便的架构. 其实我们在开发中也遇到过,Android入门门槛较低,如果前期对APP规划不清晰,Coder们对未来变化把握不准,技术架构经验不够强大,最终导致就是一个Activit…
由于智能手机时代来临,很多产品都有了APP,作为一个测试人员掌握APP测试是必要的. 在展开APP测试之前,首先了解一下几个点: 1.基于软件测试框架之上.复习下软件测试框架. 2.框架的内容贯穿于APP测试(以及其他的测试)始终. 3.软件测试用例的设计,软件的熟悉程度软件测试思维的锻炼,是所有测试的关键和基本. 学习更多测试点击:更多测试学习 目录 如何学习手机APP测试 了解手机行业 了解APP行业 熟悉手机 熟悉流行的APP 先从业务入手,熟悉基本测试点,测试技巧与方法. 在深入到架构…
篇3                 安卓app自动化测试-搞定界面元素 --lamecho辣么丑 1.1概要 大家好! 我是lamecho(辣么丑),今天是<安卓app自动化测试>的第三篇了,回顾一下前两篇主要是环境的事情,而从本篇开始就没环境什么事了,这座大山算是搬走了. 本篇将对和界面元素相关的内容做讲解,比如,查找元素的几种常见方法,上一篇我们看到的driver.find_elements_by_id('el')就属于一种:还将介绍如何查看app界面上的元素去做定位,最后还将新手经常遇…
目前Appium框架可以时支持android 和 ios 两个操作系统的App自动化测试,咱们分别对以下两款操作系统的工作流程进行说明. 一.appium-Android工作流 在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试 1.客户端是我们写的webdriver测试脚本.2.中间是Appium的服务,Appium在服务端启动一个Server(4723端口),跟selenium Web…
接着上一篇,我们开始聊聊APPIUM的框架和运行模式.废话不多说直接上图. 1.首先自动化脚本通过RobotFrameWork将命令传递给Appium的客户端: 2.然后[Appium的客户端]将接受到的命令发送给[Appium的服务端]: 3.[Appium服务端]将脚本中的代码命令转换成手机模拟器所能识别的命令通过[ADB]发送给[模拟器],从而控制被测试的应用软件. 然后摘抄了一段源自网络的Appium的理论知识: Appium原理小结 Api接口调用selenium的接口,android…
前言:关于RobotFrameWork+APPIUM实现对安卓APK的自动化测试的文章都是取自于乐于分享知识于网络的好心人们,所以我也希望我的知识可以分享给大家. 首先我们先罗列一下我们要安装的软件 1. JDK ,本人用的是1.7的版本; 2. SDK; 3. Appium; 4. Python27; 5. wxPython,科普:wxPython是Python语言的一套优秀的GUI图形库; 6. RobotFrameWork; 7. Ride 1.5; 8. Selenium 2.47; 9…
http://blog.csdn.net/deadgrape/article/details/50574459 接着上一篇,我们开始聊聊APPIUM的框架和运行模式.废话不多说直接上图. 1.首先自动化脚本通过RobotFrameWork将命令传递给Appium的客户端: 2.然后[Appium的客户端]将接受到的命令发送给[Appium的服务端]: 3.[Appium服务端]将脚本中的代码命令转换成手机模拟器所能识别的命令通过[ADB]发送给[模拟器],从而控制被测试的应用软件. 然后摘抄了一…
文章来源http://blog.csdn.net/deadgrape/article/details/50563119 前言:关于RobotFrameWork+APPIUM实现对安卓APK的自动化测试的文章都是取自于乐于分享知识于网络的好心人们,所以我也希望我的知识可以分享给大家.首先我们先罗列一下我们要安装的软件1. JDK ,本人用的是1.7的版本;2. SDK;3. Appium;4. Python27;5. wxPython,科普:wxPython是Python语言的一套优秀的GUI图形…
前言 Toast是什么呢?在这个手机飞速发展的时代,app的种类也越来越多,那们在日常生活使用中,经常会发现,当你在某个app的输入框输入非法字符或者非法执行某个流程时,经常看到系统会给你弹出一个黑色的提示框,告诉你你的操作不合法,比如某个app的登录流程,当你输入错误的用户名时,系统会弹出一个框提示你:用户名不正确,请重新输入:并且这个提示框往往会很快消失,并不需要用户自己执行关闭操作,其实这个弹框就是Toast 定位Toast的条件 定位toast及操作toast之前,你需要确保你的自动化测…
询问度娘搭好appium和python环境,开启移动app自动化的探索(基于Android),首先来记录下如何启动待测的app吧! 如何启动APP?1.获取包名:2.获取launcherActivity.获取这两个关键东西的方法很多,推荐使用sdk自带的aapt:aapt即Android Asset Packaging Tool,在SDK的build-tools目录下.该工具可以查看apk包名和launcherActivity,当然还有更多的功能,有兴趣的可以查看相关资料. 一.下载aapt:…
1. jdk配置 一.背景 JDK已经更新到12了,但是由于很多工具仍然未及时更新,故推荐最稳定的JDK版本1.8.x: JDK需要配置通常情况下,JDK配置分为三项: JAVA_HOME:某些软件仍然需要 CLASSPATH:某些Java WEB项目部署需要 PATH:都需要(O(∩_∩)O哈哈~) 二.安装 链接:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html   要注册…