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中是一个多么司空见惯的功能.最近,项目需要这个功能,于是乎就实现这个功能. 老样子,投篮需要找准角度,变成需要理清思路.对于这个"小而美"的控件,我们思 ...
随机推荐
- CSS3之3D轮播图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 三、CSS样式——背景
CSS背景 概念:CSS允许应用纯色作为背景,也允许使用背景图像创建相当复杂的效果. 属性 描述 background-attachment 背景图像是否固定或者随着页面的其余部分滚动 backg ...
- centos7下安装Go环境
下载go cd /home mkdir app cd app wget https://studygolang.com/dl/golang/go1.10.1.linux-amd64.tar.gz ta ...
- xpath 笔记
from lxml import etree info = f.read() # requests.get().text # print(info) selector=etree.HTML(info ...
- 【Python】Elasticsearch和elasticsearch_dsl
官网:https://elasticsearch-py.readthedocs.io/en/master/api.html 官网:https://github.com/elastic/elastics ...
- JAX-RS和 Spring 整合开发
JAX-RS 和 和 Spring 整合开发 1.建立maven项目 2.导入maven坐标 <dependencies> <!-- cxf 进行rs开发 必须导入 --> & ...
- [TensorFlow]TensorFlow安装方法
下载*.whl文件方法安装: 方法:http://www.python36.com/install-tensorflow-using-official-pip-pacakage/ 在线安装: 方法:h ...
- 49.字符串转int
面360的时候这道题目加了一个要求就是要求小数输出整数,故增加一个关于小数点的判断 要注意转义字符:"."和"|"都是转义字符,必须得加"\\&quo ...
- python中网络编程之线程
网络编程之线程 什么是线程? 程序的执行线路.每个进程默认有一条线程.线程包含了程序的具体步骤. 多线程就是一个进程中有除主线程(默认线程)外还有多个线程. 线程与进程的关系(进程包含线程,而线程依赖 ...
- eclipse编译器显示的文件名乱码,活动标签乱码(已解决)
在公司电脑上安装了最新eclipse版本却发现文件名会乱码,如下所示,重新安装仍存在问题. 解决方法: 打开菜单Window->Preferences 打开选项General->Appe ...