自动化测试之验证码识别

前序工作:使用jpress进行测试(需要注册安装),需要安装Java,tomcat,mysql,这里请自行百度安装。然后运行tomcat,以管理员身份运行cmd打开mysql,进入。

打开mysql
以管理员身份运行cmd
直接进入对应盘(以D盘为例)-----输入d:
进入d盘其他目录------cd D:\mysql\mysql-5.7.35-winx64\bin
输入net start mysql

在浏览器输入http://localhost:8080/jpress/user/register

记录下自动化测试时两种常用的验证码识别方法

方法1–使用pytesseract识别

这里使用jpress网站进行测试:话不多说,直接上代码

#coding:utf-8
###############测试获取简单验证码
import time
from time import sleepimport pytesseract
from selenium import webdriver
from PIL import Image
#测试截取验证码
def test1():#打开谷歌浏览器browser=webdriver.Chrome(r'd:/chromedriver.exe')#打开首页browser.get('http://localhost:8080/jpress/user/register')#窗口最大化browser.maximize_window()#获取验证码图片t=time.time()picture_name1=str(t)+'.png'#截屏browser.save_screenshot(picture_name1)#验证码idce=browser.find_element_by_id("captchaimg")print(ce.location)print(ce.rect)##########第一种写法k=1.5#确定左顶点坐标left=ce.location['x']*ktop=ce.location['y']*k#确定右底点坐标right=ce.size['width']*k+leftheight=ce.size['height']*k+top# 将图片打开im = Image.open(picture_name1)# 抠图img = im.crop((left,top,right,height))##########第二种写法# location=ce.location# size=ce.size# k = 1.5# rangle = (location['x'] * k, location['y'] * k, location['x'] * k + size['width'] * k, location['y'] * k + size['height'] * k)# #将图片打开# im=Image.open(picture_name1)# #抠图# img=im.crop(rangle)t=time.time()#抠图后保存为第二张图片吧picture_name2=str(t)+'.png'img.save(picture_name2)#截取到的验证码图片browser.close()
def test2():#打开截取的图片image1=Image.open(r'ss.png')print(image1)#转换输出验证码str=pytesseract.image_to_string(image1)print(str)

方法2–使用第三方api识别(这里用的showapi)

这里需要登录网址https://www.showapi.com/apiGateway/view/?apiCode=184&pointCode=4
注册后下载sdk,然后添加上述代码,替换对应位置my_appId","my_appSecret"替换为你的文件"

# python3.6.5
# 需要引入requests包 :运行终端->进入python/Scripts ->输入:pip install requests
from ShowapiRequest import ShowapiRequestr = ShowapiRequest("http://route.showapi.com/184-4","my_appId","my_appSecret" )
r.addFilePara("image", "替换为你的文件")
r.addBodyPara("typeId", "34")
r.addBodyPara("convert_to_jpg", "0")
r.addBodyPara("needMorePrecise", "0")
res = r.post()
print(res.text) # 返回信息

方法3–使用第三方api识别(这里用的超级鹰)

引用一篇大佬的博客

第一种方法可能会遇到一些常见的问题,我写在其他博客里啦(给自己打广告哈哈)

问题1:pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it’s not in your path

https://blog.csdn.net/qq_37866023/article/details/119361868

问题2:python3.8安装pyautogui失败,报错Requirement already satisfied解决

https://blog.csdn.net/qq_37866023/article/details/119360796

问题3:selenium中使用location无法定位验证码

https://blog.csdn.net/qq_37866023/article/details/119353060

问题4:pyautogui中moveTo无法定位

https://blog.csdn.net/qq_37866023/article/details/119349608

自动化测试之验证码识别相关推荐

  1. web自动化之验证码识别解决方案

    验证码识别解决方案 对于web应用程序来讲,处于安全性考虑,在登录的时候,都会设置验证码,验证码的类型种类繁多,有图片中辨别数字字母的,有点击图片中指定的文字的,也有算术计算结果的,再复杂一点就是滑动 ...

  2. 自动化测试之验证码处理

    在自动化测试过程中,经常会遇见有验证码的场景,例如:用户登录,用户支付,用户注册,用户重置密码,身份确认等场景. 验证码主要分为以下几种: 1.图文验证码(普通验证码) 基本由数字,中文,英文等组合而 ...

  3. selenium 验证码_selenium自动化测试之验证码处理

    背景: 我们经常在做web ui自动化过程中会遇到验证码的情况,具体形态如下图所示: 今天我们主要来讲下如何通过注入cookies的形式实现免登陆.其实我们的思路是通过selenium自动化跑到登录页 ...

  4. UI自动化之登录验证码识别

    使用selenium进行自动化测试过程中,存在网站登录的时候需要输入验证码,由于是线上环境无法关闭,故使用tesseract工具辅助识别,但是较为复杂的验证码无法识别. 一.安装tesseract工具 ...

  5. 网络投票轻松实现自动化 - 验证码识别的基本思路及方法

    投票软件比较有技术含量的部分就在验证码识别.为防止投票作弊,很多投票网站都会加随机验证码,输入验证码后才能投票.但是加了验证码是否就能万无一失呢,也不尽然.虽然不是所有验证码都能识别(如QQ的变形汉字 ...

  6. 验证码按钮的html代码,验证码识别-网页操作-脚本手册-VG自动化神器 - 原VG浏览器,VG网页操作神器...

    一. 功能介绍 对网页上出现的验证码进行处理,可以由用户手动输入验证码,也可以自动识别验证码. 二. 配置验证码 对网页上出现的验证码进行处理,可以由用户手动输入验证码,也可以自动识别验证码. 在使用 ...

  7. 提交调用验证_干货丨RPA验证码识别技巧

    验证码是RPA流程自动化中经常碰到的问题.比如进行网页或者客户端登录的时候,或者提交数据查验都有可能碰到验证码. 验证码的类型也各式各样:纯数字.英文数字.英数汉等,且一般验证码上面都有干扰因素存在( ...

  8. 验证码识别技术(1) - 边缘检测

    概述 验证码有时候也叫图形码,是一种阻止软件进行某些自动化行为的技术.被广泛的用于各种系统的帐号注册.登录验证等环节.在一定程度上验证码可以阻止软件自动进行帐号密码猜解.注册等行为. 但迫于一些原因, ...

  9. [验证码识别技术]-初级的滑动式验证图片识别

    初级的滑动式验证图片识别方案 1 abstract 验证码作为一种自然人的机器人的判别工具,被广泛的用于各种防止程序做自动化的场景中.传统的字符型验证安全性已经名存实亡的情况下,各种新型的验证码如雨后 ...

最新文章

  1. c++中几种常见的类型转换。int与string的转换,float与string的转换以及string和long类型之间的相互转换。to_string函数的实现和应用。...
  2. d3.js 入门指南 - 仪表盘
  3. PYTHON开发--面向对象基础入门
  4. 大兴服务器硬盘回收行情价格,回收服务器 硬盘 内
  5. android图片混淆还原,图片混淆还原1.2版本
  6. K8s CKA认证学习全套笔记
  7. NP、OSPF邻居邻接关系
  8. Hart/Hart-IP协议 介绍、分析和应用
  9. 在centos上安装pycharm
  10. Menhera酱全套表情包
  11. 小米路由器3G刷入OpenWrt
  12. UE4学习大纲——从入门到入土
  13. IDEA安装及破解永久版教程————鹏鹏
  14. jpg格式电脑怎么弄_(常见问题)如何把HEIC格式图片转换成JPG格式?
  15. 五人合伙最佳股份分配_五人合伙股权怎么分配?股权咨询?
  16. 《数学建模算法与应用第二版》——chapter3. 非线性规划
  17. Paging内部原理
  18. 展会圆满收官 柏克利招商峰会业绩闪亮
  19. 自学之路——七年之痒 ----------BY小生我怕怕前辈
  20. 坐标转换-两坐标系间平面坐标转换(附软件下载)

热门文章

  1. 进一步了解XPath
  2. keytool工具解析
  3. jar包修改并重新打包,jar包反编译使用工具以及修改代码方法
  4. java web(eclipse)搭建环境
  5. Android—百度地图的简单使用
  6. Charles使用指南Windows
  7. 坐标系之间的相互转换
  8. 认识中药(1) -- 鱼腥草
  9. 某软件生成文件不加密或者打不开带锁文件如何处理
  10. Unity出包结果为“fail”UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)