自动化测试之验证码识别
自动化测试之验证码识别
前序工作:使用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
自动化测试之验证码识别相关推荐
- web自动化之验证码识别解决方案
验证码识别解决方案 对于web应用程序来讲,处于安全性考虑,在登录的时候,都会设置验证码,验证码的类型种类繁多,有图片中辨别数字字母的,有点击图片中指定的文字的,也有算术计算结果的,再复杂一点就是滑动 ...
- 自动化测试之验证码处理
在自动化测试过程中,经常会遇见有验证码的场景,例如:用户登录,用户支付,用户注册,用户重置密码,身份确认等场景. 验证码主要分为以下几种: 1.图文验证码(普通验证码) 基本由数字,中文,英文等组合而 ...
- selenium 验证码_selenium自动化测试之验证码处理
背景: 我们经常在做web ui自动化过程中会遇到验证码的情况,具体形态如下图所示: 今天我们主要来讲下如何通过注入cookies的形式实现免登陆.其实我们的思路是通过selenium自动化跑到登录页 ...
- UI自动化之登录验证码识别
使用selenium进行自动化测试过程中,存在网站登录的时候需要输入验证码,由于是线上环境无法关闭,故使用tesseract工具辅助识别,但是较为复杂的验证码无法识别. 一.安装tesseract工具 ...
- 网络投票轻松实现自动化 - 验证码识别的基本思路及方法
投票软件比较有技术含量的部分就在验证码识别.为防止投票作弊,很多投票网站都会加随机验证码,输入验证码后才能投票.但是加了验证码是否就能万无一失呢,也不尽然.虽然不是所有验证码都能识别(如QQ的变形汉字 ...
- 验证码按钮的html代码,验证码识别-网页操作-脚本手册-VG自动化神器 - 原VG浏览器,VG网页操作神器...
一. 功能介绍 对网页上出现的验证码进行处理,可以由用户手动输入验证码,也可以自动识别验证码. 二. 配置验证码 对网页上出现的验证码进行处理,可以由用户手动输入验证码,也可以自动识别验证码. 在使用 ...
- 提交调用验证_干货丨RPA验证码识别技巧
验证码是RPA流程自动化中经常碰到的问题.比如进行网页或者客户端登录的时候,或者提交数据查验都有可能碰到验证码. 验证码的类型也各式各样:纯数字.英文数字.英数汉等,且一般验证码上面都有干扰因素存在( ...
- 验证码识别技术(1) - 边缘检测
概述 验证码有时候也叫图形码,是一种阻止软件进行某些自动化行为的技术.被广泛的用于各种系统的帐号注册.登录验证等环节.在一定程度上验证码可以阻止软件自动进行帐号密码猜解.注册等行为. 但迫于一些原因, ...
- [验证码识别技术]-初级的滑动式验证图片识别
初级的滑动式验证图片识别方案 1 abstract 验证码作为一种自然人的机器人的判别工具,被广泛的用于各种防止程序做自动化的场景中.传统的字符型验证安全性已经名存实亡的情况下,各种新型的验证码如雨后 ...
最新文章
- c++中几种常见的类型转换。int与string的转换,float与string的转换以及string和long类型之间的相互转换。to_string函数的实现和应用。...
- d3.js 入门指南 - 仪表盘
- PYTHON开发--面向对象基础入门
- 大兴服务器硬盘回收行情价格,回收服务器 硬盘 内
- android图片混淆还原,图片混淆还原1.2版本
- K8s CKA认证学习全套笔记
- NP、OSPF邻居邻接关系
- Hart/Hart-IP协议 介绍、分析和应用
- 在centos上安装pycharm
- Menhera酱全套表情包
- 小米路由器3G刷入OpenWrt
- UE4学习大纲——从入门到入土
- IDEA安装及破解永久版教程————鹏鹏
- jpg格式电脑怎么弄_(常见问题)如何把HEIC格式图片转换成JPG格式?
- 五人合伙最佳股份分配_五人合伙股权怎么分配?股权咨询?
- 《数学建模算法与应用第二版》——chapter3. 非线性规划
- Paging内部原理
- 展会圆满收官 柏克利招商峰会业绩闪亮
- 自学之路——七年之痒 ----------BY小生我怕怕前辈
- 坐标转换-两坐标系间平面坐标转换(附软件下载)
热门文章
- 进一步了解XPath
- keytool工具解析
- jar包修改并重新打包,jar包反编译使用工具以及修改代码方法
- java web(eclipse)搭建环境
- Android—百度地图的简单使用
- Charles使用指南Windows
- 坐标系之间的相互转换
- 认识中药(1) -- 鱼腥草
- 某软件生成文件不加密或者打不开带锁文件如何处理
- Unity出包结果为“fail”UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)