最近在做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端密码控件自动化测试的更多相关文章

  1. 使用WinIo32绕过密码控件实现自动登录

    通过winIO32绕过密码控件,实现自动登录 环境: vmware上安装windows 32位系统:windows xp / windows 7 selenium版本: 3.11.0 IEDriver ...

  2. PassGuard密码控件配置

    运行环境 win服务器 系统server2008R2 C# ASP.NET服务器页面 前端部分      1.引用 //JS部分引用 <script type="text/javasc ...

  3. H5新增form控件和表单属性

    第一个知识点:表单的属性及总结 第二个知识点:H5新增的表单控件和属性以及总结 第一个知识点: 我们常见的表单验证有哪些呢 text 文本框标签 password 密码框 checkbox 多选框 r ...

  4. selenium登录网银,密码控件输入

    尝试登录农行网银,发现带控件的密码输入框怎么都无法输入啊 最后用虚拟键盘实现的  , DD模拟键盘 http://www.ddxoft.com/ 图形验证码识别没过,有时间再继续 需要安装  Tess ...

  5. [端API] 控件在一个页面里open了,但其他页面打开这个控件怎么关闭

    加在控件的参数里<script type="text/javascript" src="../script/api.js"></script& ...

  6. 纯js实现移动端滑动控件,以上下滑动自取中间位置年龄为例;

    <!-- 需求:上下滑动,在一个大的div块里显示5个小的值,滑动过程中自动获取中间位置的值 需要注意的是: 1 touchmove会多次被触发: 2 获取中间位置的值可以通过定位得top值来获 ...

  7. 移动端日期控件 mobiscroll

    Mobiscroll是一个用于触摸设备(Android phones, iPhone, iPad, Galaxy Tab)的日期和时间选择器jQuery插件.可以让用户很方便的只需要滑动数字既可以选择 ...

  8. 移动端日历控件 mobiscroll 的简单使用、参数设置

    mobiscroll 在性能方面比较好,可选用多种效果,滑动效果也比较顺畅.   提供样式文件和js文件,直接点击下载,该版本是 mobiscroll 2.13的 官方地址 :https://docs ...

  9. Android 高仿微信支付密码输入控件

    像微信支付密码控件,在app中是一个多么司空见惯的功能.最近,项目需要这个功能,于是乎就实现这个功能. 老样子,投篮需要找准角度,变成需要理清思路.对于这个"小而美"的控件,我们思 ...

随机推荐

  1. 用SVG做background image

    1 用utf8格式, 需要 双引号“”替换为单引号,而且采用url encode编码,例如# 替换为 %23, body { background-image: url("data:imag ...

  2. 《机器学习实战》之一:knn(python代码)

    数据 标称型和数值型 算法 归一化处理:防止数值较大的特征对距离产生较大影响 计算欧式距离:测试样本与训练集 排序:选取前k个距离,统计频数(出现次数)最多的类别 def classify0(inX, ...

  3. Python简单语音识别并响应

    起因是一个工作中喜欢说口头禅的同事,昨天老说"你看看你看看 操不操心".说了几次之后我就在他说完"你看看"后面续上,"操不操心".往复多次后 ...

  4. javascript条件语句

    //条件语句 if (false) { console.log("is true") } else { console.log("is false") } // ...

  5. orcal - 约束

    数据库约束 1.非空约束 DROP TABLE member PURGE; CREATE TABLE member( mid number , name varchar2(20) not null, ...

  6. 判断IOS、Android访问

    /*判断手机访问是Android还是IOS*/ $user_agent = $_SERVER['HTTP_USER_AGENT']; if(stripos($user_agent, "iPh ...

  7. visual studio 2013 几个测试工具(Nunit 3、xUnit)

    一.Nunit 3 1.在解决方案里添加一个类库——引用——右键(如下图)) 3.搜索nunit 并安装(如图) 3.注意引入命名空间并给测试类和测试方法添加特性(如图) 4.如果测试通过则为绿色(如 ...

  8. Photoshop CC安装与破解方法

    下载Photoshop CC与破解补丁 破解补丁就一个文件,amtlib.dll 断网安装Photoshop CC,提示登录选择稍后登录即可 安装成功后将破解补丁安装根目录的amtlib.dll替换即 ...

  9. win10关不了机解决办法以及win10怎么禁止开机启动项

    1.win10关不了机解决办法:https://zhidao.baidu.com/question/693962749213927924.html 2.win10怎么禁止开机启动项:https://j ...

  10. 函数(一.return)

    #return的用法:#return用于退出函数,选择性的返回一个表达式.def test1(a,b): total = a+b return total print(total) def test2 ...