基于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的移动端自动化测试,密码键盘无法识别问题的更多相关文章

  1. 基于Appium、Python的自动化测试

    基于Appium.Python的自动化测试环境部署和实践   第一章 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile ...

  2. Appium+python移动端自动化测试-python库及pycharm安装(二)

    一.安装python库 安装python库有很多种方法,如pip安装.源文件安装.运行包安装,但我们最常用的就是使用pip进行安装 Appium+python做移动端的自动化测试,所需要安装以下pyt ...

  3. 基于appium快速实现H5自动化测试

    一.下载Appium-Server及库文件 库文件:jar包:java-client-3.1.0.jar Appium-Server:Appium服务器: 注:Appium包含客户端和服务端,客户端就 ...

  4. Appium+python移动端自动化测试-环境搭建(一)

    搭建所在系统环境:Windows7版本64位系统 一.环境准备 jdk8.0.151 android-sdk_r20.3.4-windows python3.5 appium1.4.16.1 Node ...

  5. appium+python做移动端自动化测试

      1 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile Web)应用UI自动化测试的相关自动化测试人员.开发人员等提供 ...

  6. 基于appium的app自动化测试框架

    基于appium框架的app自动化测试 App自动化测试主要难点在于环境的搭建,appium完全是基于selenium进行的扩展,所以app测试框架也是基于web测试框架开发的 一.设备连接 (即构建 ...

  7. 移动端自动化测试(一)之 Appium+Pyhton环境准备篇

    移动端自动化测试(一)之 Appium+Pyhton环境准备篇 2016-11-17 16:51 by CockRoacher, 5046 阅读, 1 评论, 收藏, 编辑 由于工作的需要进行Andr ...

  8. 移动端自动化测试-WTF Appium?

    手机App分为两大类,原生App(Native App)和混合APP(Hybrid App) 原生App(Native App) 原生App实际就是我们所常见的传统App开发模式,云端数据存储+App ...

  9. 移动端自动化测试-WTF Appium

    手机App分为两大类,原生App(Native App)和混合APP(Hybrid App) 原生App(Native App) 原生App实际就是我们所常见的传统App开发模式,云端数据存储+App ...

随机推荐

  1. NDK 开发(Android.mk配置)

         在我写这篇文章的时候,Android Studio已经是2.3版本了,已经集成CMake 编译工具, 用户只需在 新建项目的时候,添加选项(Include C++ support),Andr ...

  2. tp框架基础(详细步骤分解,易懂)下

    在浏览器中如果要访问操作方法的时候以什么方式来访问 有四种方式 第一种是get方式,第二种是访问路径 这四种方式我们可以通过修改配置文件来改掉url的模式 我们需要来改一下我们的配置文件 在这个路径下 ...

  3. 1491: [NOI2007]社交网络

    1491: [NOI2007]社交网络 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 881  Solved: 518[Submit][Status] ...

  4. 关于在链路聚合下做smart,monitor link的转发测试

    关于在链路聚合下做smart,monitor link的转发测试 这次又要开始瞎折腾了.没事找事了.毕竟我还是很无聊的: 这个实验主要要涉及到以下几个方面: 1.gvrp的应用: 2.Smart Li ...

  5. JAVA I/O 字符输出流简要概括

    偷个懒,直接参考上篇字符输入流Reader的形式,其实Reader和Writer本来就大同小异: 字符输出流Writer 本篇将对JAVA I/O流中的字符输出流Writer做个简单的概括: 总得来说 ...

  6. ORM-Dapper学习<二>

    Dapper的简介 Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的.Dapper只有一个代码文件,完全开源,你 ...

  7. php基础语法(20161021)

    上午: 数据库总结: 1.创建数据库 create database 数据库名称 删除数据库 drop database 数据库名称 2.创建表 create table 表名 ( 列名 类型(长度) ...

  8. Linux云自动化运维第三课

    Linux云自动化运维第三课 一.正则表达式 1.匹配符 * ###匹配0到任意字符 ? ###匹配单个字符 [[:alpha:]] ###匹配单个字母 [[:lower:]] ###匹配单个小写字母 ...

  9. Zeppelin interperter 模式设置总结

    如有错漏,望请指正,不胜感激. 参考:[zeppelin官网]:https://zeppelin.apache.org/docs/latest/interpreter/spark.html#inter ...

  10. wcf、web api、webservicer 之间的区别

    名次注解 SOAP 简单对象访问协议(SOAP)是一种轻量的.简单的.基于 XML 的协议,是交换数据的一种协议规范,是一种轻量的.简单的.基于XML(标准通用标记语言下的一个子集)的协议,它被设计成 ...