300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 自动化测试之验证码识别

自动化测试之验证码识别

时间:2022-09-28 07:41:44

相关推荐

自动化测试之验证码识别

自动化测试之验证码识别

前序工作:使用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 timefrom time import sleepimport pytesseractfrom selenium import webdriverfrom 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)

这里需要登录网址/apiGateway/view/?apiCode=184&pointCode=4

注册后下载sdk,然后添加上述代码,替换对应位置my_appId","my_appSecret"替换为你的文件"

# python3.6.5# 需要引入requests包 :运行终端->进入python/Scripts ->输入:pip install requestsfrom ShowapiRequest import ShowapiRequestr = ShowapiRequest("/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

/qq_37866023/article/details/119361868

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

/qq_37866023/article/details/119360796

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

/qq_37866023/article/details/119353060

问题4:pyautogui中moveTo无法定位

/qq_37866023/article/details/119349608

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。