基于appium的移动端自动化测试,密码键盘无法识别问题
基于appium做自动化测试,APP密码键盘无法识别问题解决思路
这个问题的解决思路如下:
1.针对iOS无序键盘:首先,iOS的密码键盘是可识别的,但是,密码键盘一般是无序的。针对这个情况,思路是用Macaca或者appium-inspector来获取到每个键的信息的。首先,定义一个数据字典key_num={},把每个键的xpath保存到字典里面去。这样key_num里面保存的就是key_num[0]="第一个按键的xpath路径",key_num[1]="第二个按键的xpath路径"以此类推,记录完,整个键盘的xpath路径。然后,通过xpath的值就可以取得该元素的name值,这个值就是该键的数字,取name值方式:对象.get_attribute("name")。然后,定义另一个字典keys_num={},来保存每个按键对应的xpath和对应的数字。比如:第一个键是“6”,就写keys_num[6]="第一个键的xpath",第二个键是“4”,keys_num[4]="第二个键的xpath",以此类推,记录完整个键盘的数字和对应的xpath。这样在输入密码的时候,只要遍历密码,例如:密码是“666888”,那么密码的第一值是6,我们就取keys_num[6]的值就可以获取到“数字6”的xpath,在通过get_element_by_xpath("数字6的xpath")方式就可以获取到该元素,再用 元素.click()进行点击,就可以输入该值了。
2.针对Android无序且无法识别键盘:Android的密码键盘一般是无序而且不可识别的。我们要用到ocr这个技术,大家不要紧张,可以去找相关的ocr类库,比如用python写脚本的人就可以找python的ocr类库,使用很简单。下面说如何解决密码键盘识别问题。首先,用adb截取密码键盘界面,把键盘界面通过ocr来识别,获取到键盘数字的顺序,例如:键盘的数字顺序是“9638527410”,那么我们就可以知道该次弹出的键盘第一排是“963”,第一个键是“9”,第二个键是“6”以此类推。但是,有的人会问了“我们既然无法识别键盘,那么如何获取键盘信息呢?”,对,我们只能通过ocr获取到键盘数字排序却无法获取到按键信息。那么如何点击呢?接下来,我们打开andorid的“指针位置”这个功能,计算出每个按键在屏幕的位置(计算方式:按百分比的方式计算,即:该键在屏幕的相对位置)。然后定义字典key_num_x={},key_num_y={}分别将该键的坐标记录下来,例如第一个键的值是6那么就写key_num_x[6]="第一个键的x坐标",key_num_y[6]="第一个键的y坐标"。以此类推。记录完所有的按键信息。这样在输入密码的时候,只要遍历密码,例如:密码是“666888”,那么密码的第一值是6,我们就取key_num_x[6]和key_num_y[6]的值,在通过 driver.tap([{x坐标,y坐标}])这个方法就可以点击了。
基于appium的移动端自动化测试,密码键盘无法识别问题的更多相关文章
- 基于Appium、Python的自动化测试
基于Appium.Python的自动化测试环境部署和实践 第一章 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile ...
- Appium+python移动端自动化测试-python库及pycharm安装(二)
一.安装python库 安装python库有很多种方法,如pip安装.源文件安装.运行包安装,但我们最常用的就是使用pip进行安装 Appium+python做移动端的自动化测试,所需要安装以下pyt ...
- 基于appium快速实现H5自动化测试
一.下载Appium-Server及库文件 库文件:jar包:java-client-3.1.0.jar Appium-Server:Appium服务器: 注:Appium包含客户端和服务端,客户端就 ...
- Appium+python移动端自动化测试-环境搭建(一)
搭建所在系统环境:Windows7版本64位系统 一.环境准备 jdk8.0.151 android-sdk_r20.3.4-windows python3.5 appium1.4.16.1 Node ...
- appium+python做移动端自动化测试
1 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile Web)应用UI自动化测试的相关自动化测试人员.开发人员等提供 ...
- 基于appium的app自动化测试框架
基于appium框架的app自动化测试 App自动化测试主要难点在于环境的搭建,appium完全是基于selenium进行的扩展,所以app测试框架也是基于web测试框架开发的 一.设备连接 (即构建 ...
- 移动端自动化测试(一)之 Appium+Pyhton环境准备篇
移动端自动化测试(一)之 Appium+Pyhton环境准备篇 2016-11-17 16:51 by CockRoacher, 5046 阅读, 1 评论, 收藏, 编辑 由于工作的需要进行Andr ...
- 移动端自动化测试-WTF Appium?
手机App分为两大类,原生App(Native App)和混合APP(Hybrid App) 原生App(Native App) 原生App实际就是我们所常见的传统App开发模式,云端数据存储+App ...
- 移动端自动化测试-WTF Appium
手机App分为两大类,原生App(Native App)和混合APP(Hybrid App) 原生App(Native App) 原生App实际就是我们所常见的传统App开发模式,云端数据存储+App ...
随机推荐
- iOS热更新技术被苹果官方警告?涉及到RN、Weex、JSPatch!!!
今天一早,不少iOS开发群都炸窝了,原因是部分iOS开发者收到了苹果的警告邮件: 有开发者质疑可能是项目中使用了JSPatch.weex以及ReactNative等热更新技术.对于修复bug提交审核的 ...
- iOS实现视频和图片的上传
关于iOS如何实现视频和图片的上传, 我们先理清下思路 思路: #1. 如何获取图片? #2. 如何获取视频? #3. 如何把图片存到缓存路径中? #4. 如何把视频存到缓存路径中? #5. 如何上传 ...
- ajax删除数据(不跳转页面)
以前我们讲的删除是利用嵌入php代码,跳转到另一个页面,从而降低了删除速度,但我们今天讲的利用ajax不仅可以达到不跳页面快速删除,并且能添加特效来美化页面. AJAX = 异步 JavaScript ...
- xml与json的原理,区别,优缺点.
1.定义介绍 (1).XML定义扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许 ...
- UI 自定义视图 ,视图管理器
一>自定义label - textField 视图 自定义视图:系统标准UI之外,自己组合而出的新的视图 iOS 提供了很多UI组件 ,借助它们,我们可以做各种程序 尽管如此,实际开发中,我们还 ...
- js页面跳转常用的几种方式
第一种: <script language="javascript" type="text/javascript"> window.location ...
- .Net编译运行原理
.Net Framework: 它是框架库和运行时的集合 ( FCL, Framework Class Library ) ( CLR, Common Language Runtime ) 不严格说它 ...
- Java 中的数组
1.声明数组String [] arr;int arr1[];String[] array=new String[5];int score[]=new int[3]; 2.初始化数组://静态初始化i ...
- JDBC(上)
1. 课程回顾 mysql加强 1)数据约束(表约束) 默认值: default 默认值 非空: not null 唯一: unique 主键: primary key (非空+唯一) 自增长: ...
- 整理:20个非常有用的Java程序片段
下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric strin ...