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中是一个多么司空见惯的功能.最近,项目需要这个功能,于是乎就实现这个功能. 老样子,投篮需要找准角度,变成需要理清思路.对于这个"小而美"的控件,我们思 ...
随机推荐
- vue设置路由跳转参数,以及接收参数
最近做Vue项目,遇到了一个路由跳转问题:首页要跳转到项目页指定的Tab选项卡项,一开始总是跳到默认项.解决方法如下: 在跳转链接处设置了路由跳转参数,如下: <router-link :to ...
- Bootstrap treeview增加或者删除节点
参考(AddNode: http://blog.csdn.net/qq_25628235/article/details/51719917,deleteNode:http://blog.csdn.ne ...
- 关于对CSS中超链接那部分的设置
a:link{ //正常下的超链接 color:red; //超链接的颜色 text ...
- js异步处理历程
为什么会出现异步: js执行环境是单线程的,异步处理就非常重要. 处理的方法: 方法一:callback hell 解决:解决了异步处理 存在问题:出现多个回调函数嵌套,代码就会比较乱,出现回调地狱现 ...
- bootstrap的使用集锦
在使用div样式的时候可以根据页面布局来调整大小 <div class="col-md-8 col-md-offset-3"># col-md-8 div所占的空间大小 ...
- consul的安装与使用
consul官网下载地址 https://www.consul.io/downloads.html 下载后解压 在bat文件中增加如下内容,就可以双击启动了 start consul agent -d ...
- 索引跳跃式扫描(INDEX SKIP SCAN)
索引跳跃式扫描(INDEX SKIP SCAN) 索引跳跃式扫描(INDEX SKIP SCAN)适用于所有类型的复合B树索引(包括唯一性索引和非唯一性索引),它使那些在where条件中没有对目标索引 ...
- (12)SecureCRT中文乱码问题
Options -- Session Options -- Appearance --Character encoding:选择UTF-8
- POI 使用颜色字符串生成XSSFColor对象
public static int[] hexToRgb(String hex) { String colorStr = hex; if (hex.startsWith("#")) ...
- 【译】深度双向Transformer预训练【BERT第一作者分享】
目录 NLP中的预训练 语境表示 语境表示相关研究 存在的问题 BERT的解决方案 任务一:Masked LM 任务二:预测下一句 BERT 输入表示 模型结构--Transformer编码器 Tra ...