百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

软件测试|一文教你绕过头疼的图形验证码

off999 2024-12-22 20:08 40 浏览 0 评论

前言

在我们的日常测试工作中,验证码绝对是很让我们头疼的一个东西,图形验证码,滑块验证码等场景阻碍着我们自动化测试的执行。那么,我们一直说的万能的Python,能不能帮我们解决让我们无比头疼的验证码问题呢?答案是肯定的,可以。下面我们就介绍一下Python的简单实用的识别验证码的库 ddddocr ,这个库简称带带弟弟ocr。

环境安装

ddddocr库目前支持的版本为Python3.9以下,所以版本太高的Python暂时是使用不了这个库的。

ddddocr支持Windows,Linux,Mac等系统,但是对M系列芯片的Mac电脑有限制,如下:

注:暂时不支持Macbook M1(X),M1(X)用户需要自己编译onnxruntime才可以使用

安装命令,还是一样的pip命令安装

pip install ddddocr

因为库比较大,所以建议使用国内源安装,速度会更快一些,使用如下命令:

pip install ddddocr -i https://pypi.tuna.tsinghua.edu.cn/simple/

图形验证码识别

我们经常遇到的图形验证码主要是纯数字,纯字母,数字字母组合,下面我们通过ddddocr库来进行逐一的识别看看是否能够准确识别这三种验证码。

  1. 纯数字验证码

验证码图片如下:


代码如下:

import ddddocr                       # 导入 ddddocr
ocr = ddddocr.DdddOcr()              # 实例化
with open('ocr1.jpg', 'rb') as f:     # 打开图片
    img_bytes = f.read()             # 读取图片
res = ocr.classification(img_bytes)  # 识别
print(res)

运行结果如下图:

  1. 纯字母验证码

验证码图片如下:

代码如下:

import ddddocr                       # 导入 ddddocr
ocr = ddddocr.DdddOcr()              # 实例化
with open('ocr5.png', 'rb') as f:     # 打开图片
    img_bytes = f.read()             # 读取图片
res = ocr.classification(img_bytes)  # 识别
print(res)

运行结果如下图:

  1. 数字字母混合的验证码

验证码图片如下:

代码如下:

import ddddocr                       # 导入 ddddocr
ocr = ddddocr.DdddOcr()              # 实例化
with open('ocr2.png', 'rb') as f:     # 打开图片
    img_bytes = f.read()             # 读取图片
res = ocr.classification(img_bytes)  # 识别
print(res)

输出结果如下图:

滑块验证码

滑块验证码也是目前很多网站的验证手段,ddddocr同样可以帮助我们识别到滑动的位置。

滑块验证码示例如下:


要解决滑块验证码的问题,就需要我们识别到拼图缺口的位置,将滑块滑动至缺口,使得拼图能够填充。

我们需要先提取出2张图片,分别为background.png 和 target.png

代码如下:

import ddddocr

det = ddddocr.DdddOcr(det=False, ocr=False, show_ad=False)

with open('target.png', 'rb') as f:
    target_bytes = f.read()

with open('background.png', 'rb') as f:
    background_bytes = f.read()

res = det.slide_match(target_bytes, background_bytes, simple_target=True)
print(res)

------------------------------------------
输出结果如下:
{'target_y': 0, 'target': [184, 58, 246, 120]}

target 的四个值就是缺口位置的左上角和右下角的左边位置。

中文验证码识别

中文验证码识别主要就是要求按顺序点击汉字等操作,ddddocr主要就是要识别图像上的汉字

图片如下:

代码如下:

import ddddocr
import cv2

det = ddddocr.DdddOcr(det=True)

with open("ocr4.png", 'rb') as f:
    image = f.read()

poses = det.detection(image)

im = cv2.imread("ocr4.png")

for box in poses:
    x1, y1, x2, y2 = box
    im = cv2.rectangle(im, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2)

cv2.imwrite("result.jpg", im)

生成的图片如下:

总结

本文主要介绍了使用ddddocr进行验证码识别的方法,我们识别了纯数字、纯字母、字母数字混合、滑块验证码以及汉字识别的方法,希望能够帮助大家更好地完成自动化测试的工作。

相关推荐

装系统的u盘怎么制作(装系统怎么制作u盘启动盘)
装系统的u盘怎么制作(装系统怎么制作u盘启动盘)

1、下载安装u当家u盘启动盘制作工具,完成之后打开该软件2、将之前准备好的U盘插入电脑,U当家会自动识别并选为默认,如果有多个U盘可以在“选择U盘”的下拉框中选择要制作成U盘启动盘的U盘。3、点击下面的“一键制作”按钮。(如果是电脑主板是U...

2025-11-15 07:03 off999

台电u盘怎么样

感觉台电U盘还是可以的,我知道台电是国内最成功的数码产品制造商之一,是一个致力于IT及消费数码类产品研发、生产、销售及服务的一体化品牌,U盘很好用,用的人很多。威刚是480Mbit/S只是USB2...

u盘重装系统蓝屏进不去(u盘装系统重启蓝屏)

尊敬的用户您好:可按下面的步骤进行系统盘装系统:1.买一张win7光盘,将系统光盘放入光驱里。2.打开电源,然后观察屏幕的提示,在启动系统之前有按“f2进行bios设置。3.设置启动方式。找到boot...

win快捷键大全(win快捷键大全表)

win快捷键:单独按Windows:显示或隐藏“开始”功能表Windows+BREAK:显示“系统属性”对话框Windows+D:显示桌面或恢复桌面Windows+M:最小化所有窗口Windows...

u盘突然要格式化怎么回事(用着的u盘突然要格式化)

U盘提示格式化的原因可能有以下几点:文件系统损坏:U盘的文件系统可能出现损坏,导致无法正常读取和写入数据。病毒感染:U盘可能被病毒感染,病毒会破坏文件系统或隐藏文件。不兼容的文件系统:U盘可能使用了一...

路由器pppoe怎么设置(路由器如何设置pppoe上网)

移动宽带PPPOE是不用设置的,你只要把帐号和密码填上其他都不选就能上网。但是要注意连接到你电脑的网线是直接经过一个路由器后连接到猫上的,因为我见过有人是这样连接的猫---路由器---路由器---电脑...

win7桌面图标设置在哪里(win7桌面图标在哪个文件夹)

要调出Win7桌面图标,首先需要进入桌面。可以通过点击任务栏上方的“显示桌面”按钮或按下Windows键+D快捷键进入桌面。在桌面上右键单击空白区域,选择“个性化”,然后选择“更改桌面图标”选项。在弹...

win7手机壁纸(windows7手机桌面主题)

1.首先我们打开手机进入到桌面,找到设置图标点击打开。华为手机如何设置自定义锁屏壁纸2.进入到设置界面之后,点击下方的显示选项。华为手机如何设置自定义锁屏壁纸3.然后我们就可以在显示界面中找到壁纸...

怎么开启路由器wifi(怎么开启路由器的dhcp功能)

把路由器改为开放网络方法如下:1、打开浏览器,在地址栏输入路由器网关IP地址(路由器背后的标签上有,一般是192.168.1.1),输入登录用户名和密码(一般均为admin);2、登录成功后就显示运行...

win10加载不出来桌面黑屏(window10加载不出来)

方法一、如果是遇到了突发性黑屏首先尝试使用Ctrl+Alt+Delete组合键来进行电脑重启一般重启可以解决大部分黑屏故障。win10电脑黑屏按什么键恢复_win10电脑黑屏一键恢复的方法方法...

怎么用火绒关闭win安全中心(win10火绒安全软件怎么关闭)

一、火绒防火墙关闭方法在电脑上运行火绒软件后,点击首页界面的“防护中心”,在病毒防护界面可以关闭文件、U盘、邮件等保护功能,。系统防护:在该界面可以关闭系统防护功能,。网络防护:可以关闭网络保护等功...

微软应用商店下载手机版(微软应用商店在哪下)

、在桌面任务栏找到微软应用商店,点击并打开。2、进入页面后点击【应用】,进入应用页面。3、在页面里往下移动,找到热门应用,找到一个软件,点击进入。4、进入页面后,点击【安装】,软件会自动安装,安装完毕...

win11系统怎么查看电脑配置(win11怎么查看系统版本)

答:win11查看电脑配置步骤如下。1.点击下方任务栏的windows图标或者按下键盘“windows键”打开开始菜单。2.在开始菜单中找到“设置”或“settings”,一般是右上角的齿轮状按钮,3...

麦克风没坏但是没声音(麦克风没声怎么回事)

几种可能性,供您参考:1、麦是完全好的(其它机子上可以用)2、插孔没有插错3、音量控制里的麦克风并没有静音掉4、声卡驱动已重装过N次,新的旧的都试过了5、音量控制→属性→录音→麦克风下面的勾...

win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)

取消回复欢迎 发表评论: