最近在做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. 02 jmeter性能测试系列_JForum测试论坛的环境搭建

    软件测试高端专家培训 QQ 讨论群498721021 网站http://www.szwpinfo.com 1.进入jforum的官方网站,地址http://jforum.net/,下载 2.放入到to ...

  2. debian apache2 修改默认路径

    1.修改 /etc/apache2/sites-enable/000-default.conf 将DocumentRoot改成你的路径 2.修改 /etc/apache2/apache2.conf & ...

  3. Could not create local repository at /home/yizhenn/.m、IDEA倒入maven项目无法导报问题

    问题描述: 用自己电脑新搭建环境,用idea倒入项目后发现无法倒入jar包,很少郁闷,折腾了很久,最终发现问题 settings文件中下面这个配置,需要是自己电脑的路径 <localReposi ...

  4. [java,2017-05-17] 数据型参数趣谈

    int的最大值是多少?加一呢?乘2呢? 第一个问题我想大多数人都知道,不知道后两个有多少人研究过. 首先上一段代码: public class DecimalTest { public static ...

  5. C语言程序实现,统计字符串里面各个字符的个数在总字符个数中的比例,并打印输出。

    #include<stdio.h> int main() { char *ppp= "aaassadddeeds"; ] = {};//存放字符 uint32 ccnt ...

  6. VS连接数据库字符串

    在App.config配置文件中的<Configuration>节点中添加如下代码 <connectionStrings>    // SQL Server 数据库      ...

  7. [Android]Linux下WebRTC下载与编译

    1.硬盘空间: WebRTC官方原话: The checkout size is large due the use of the Chromium build toolchain and many ...

  8. drf框架之分页器的用法

    1. 分页器分为:简单分页器与偏移分页器和加密分页器 2.实现一个简单的分页器的用法: # 简单分页 # 第一步,导入分页类 # from rest_framework.pagination impo ...

  9. 每日算法之递推排序(P1866 编号)

    兔子也是数字控:每个兔子都有自己喜欢的数字区间,找出能让所有兔子都满意的组合. 将所有兔子喜欢的序号按从小到大排序,此时如果小序号的兔子选择了一个数字,则之后的兔子只要排除排在它之前的兔子数(由于已经 ...

  10. js 字符串截取函数substr,substring,slice之间的差异

    js 字符串的截取,主要有三个函数,一般使用三个函数:substr,substring,slice. 而这三个函数是不完全一样的,平时很难记住,在这里做下笔记,下次遇到的时候,直接从这里参考,调用合适 ...