H5端密码控件自动化测试
最近在做H5端UI自动化测试,其中遇到了一个棘手问题就是密码控件,因为密码控件的按钮每次都是随机不一样的,没法固定去点击输入密码。密码的输入框是div不是input,所以没法用send_keys()这个方法。输入的密码都是经过加密后传给后台的,所以没法直接传值。各种途径都被堵死,宝宝心里苦啊。想来想去只能模拟人去点击输入密码,但是按键每次位置不一样,是个难题,于是想了一个办法就是识别按键上的数字,然后再去点击,接下来说一下实现的思路:
1、看下图我们输入密码的页面,
所看到的每个数字,都是一个小图片,都可以作为元素来定位到,如下图代码,按钮的class_name都是有序可循的,
2、每次进入到这个页面,就会定位到这些元素,然后把这些图片保存下来,这块我用的是
screenshot_as_file()这个方法。并以所在位置的class_name中的数字命名(比如area_3这个位置的图片,我就命名为3.png,以此类推)
3、然后对图片上的数字进行识别,这块用到了pytesseract模块和tesseract-ocr这个工具(识别过程遇到了一个问题,就是若图片上只有一个数字则识别不出来,我已经写了另一个随笔来说明这个问题,请戳https://www.cnblogs.com/zy0209/p/10162917.html)
4、假设我的密码是6个0,若识别出了图片中的数字是0,则把图片的名称返回(这块我写的for循环,其实返回的值就是for循环的当前取值),作为元素定位的class_name中的那个数字
到这里,我们的问题就完美解决。蹭蹭蹭,输入密码,进行下一步。啦啦啦,好开心~
PS:
1.虽然我做的是H5端的自动化,但是我使用chrome模拟的手机,所以还是选择的是selenium框架
2.这是我解决这个问题的方法,如果大家有其他的方法,欢迎交流, 共同进步
H5端密码控件自动化测试的更多相关文章
- 使用WinIo32绕过密码控件实现自动登录
通过winIO32绕过密码控件,实现自动登录 环境: vmware上安装windows 32位系统:windows xp / windows 7 selenium版本: 3.11.0 IEDriver ...
- PassGuard密码控件配置
运行环境 win服务器 系统server2008R2 C# ASP.NET服务器页面 前端部分 1.引用 //JS部分引用 <script type="text/javasc ...
- H5新增form控件和表单属性
第一个知识点:表单的属性及总结 第二个知识点:H5新增的表单控件和属性以及总结 第一个知识点: 我们常见的表单验证有哪些呢 text 文本框标签 password 密码框 checkbox 多选框 r ...
- selenium登录网银,密码控件输入
尝试登录农行网银,发现带控件的密码输入框怎么都无法输入啊 最后用虚拟键盘实现的 , DD模拟键盘 http://www.ddxoft.com/ 图形验证码识别没过,有时间再继续 需要安装 Tess ...
- [端API] 控件在一个页面里open了,但其他页面打开这个控件怎么关闭
加在控件的参数里<script type="text/javascript" src="../script/api.js"></script& ...
- 纯js实现移动端滑动控件,以上下滑动自取中间位置年龄为例;
<!-- 需求:上下滑动,在一个大的div块里显示5个小的值,滑动过程中自动获取中间位置的值 需要注意的是: 1 touchmove会多次被触发: 2 获取中间位置的值可以通过定位得top值来获 ...
- 移动端日期控件 mobiscroll
Mobiscroll是一个用于触摸设备(Android phones, iPhone, iPad, Galaxy Tab)的日期和时间选择器jQuery插件.可以让用户很方便的只需要滑动数字既可以选择 ...
- 移动端日历控件 mobiscroll 的简单使用、参数设置
mobiscroll 在性能方面比较好,可选用多种效果,滑动效果也比较顺畅. 提供样式文件和js文件,直接点击下载,该版本是 mobiscroll 2.13的 官方地址 :https://docs ...
- Android 高仿微信支付密码输入控件
像微信支付密码控件,在app中是一个多么司空见惯的功能.最近,项目需要这个功能,于是乎就实现这个功能. 老样子,投篮需要找准角度,变成需要理清思路.对于这个"小而美"的控件,我们思 ...
随机推荐
- oracle表的基本操作
--修改名称rename l_user_info to t_user_info --添加带有约束的表 create table t_user_menu( id number(20) primary k ...
- mysql索引总结(转)
mysql索引总结----mysql 索引类型以及创建 文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好 ...
- java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring EventListener,超时处理和空循环性能优化
异步转同步 业务需求 有些接口查询反馈结果是异步返回的,无法立刻获取查询结果. 正常处理逻辑 触发异步操作,然后传递一个唯一标识. 等到异步结果返回,根据传入的唯一标识,匹配此次结果. 如何转换为同步 ...
- H5转图片支持保存
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Opencv与Qt (一)之运行测试读取图片
刚刚在vs上装好了QT和Opencv,试一下效果把. 我简单的创建了一个label,然后使用Opencv导入图像,因为Opencv导入图像是MAT格式的,在使用Qt的时候我们要把导入的图像转换成Qim ...
- CentOS使用nginx部署https服务
nginx安装参考:https://www.cnblogs.com/taiyonghai/p/6728707.html 自签证书生成参考:https://gmd20.github.io/blog/op ...
- 再论 ORM
Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射. ORM 对象关系映射,这样说还是懵. 这里比较难理解的是 关系 —— 即Relationl ,虽然看起 ...
- 内核驱动程序中如何读写user space的文件,方便调试程序
需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据.但是在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() f ...
- java开发人员win10配置
1.让win10的cmd支持ll命令 新建ll.bat 编辑类容为: @echo off dir3.将该文件移动到C:\Windows下. CMD里就可以用ls来代替dir命令显示目录列表了. 2.i ...
- Nginx性能调优之buffer参数设置
Nginx 的缓存功能有:proxy_cache / fastcgi_cache proxy_cache的作用是缓存后端服务器的内容,可能是任何内容,包括静态的和动态.fastcgi_cache的作用 ...