UI自动化测试时,需要对验证码进行识别处理,有很多方式,每种方式都有自己的特点,以下是一些常用处理方法,仅供参考。
Python-tesseract
模块来只能识别图片中的验证码;Python-tesseract
是光学字符识别Tesseract OCR
的python
封装类;JPG、GIF、PNG、TIFF
等;image01.jpg-image04.jpg
: 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】
pip install Pillow
pip install Pillow
path
环境变量中: X、Y、R、G、B
;X、Y
是像素的二维平面坐标,RGB
代表像素所对应的颜色。from PIL import Image
image = Image.open("./image01.jpg")
RGB
转为HSI
色彩空间),采用L
分量:# 彩色转灰度
img_01 = image.convert("L")
img_01.show()
image01.jpg
):# 导入Image包
from PIL import Image
# 打开图像
image = Image.open("./image01.jpg")
# 彩色转灰度
img_01 = image.convert("L")
img_01.show()
0-1
;image02.jpg
):# 导入Image包
from PIL import Image
# 打开图像
image = Image.open("./image02.jpg")
# 二值化处理
img_02 = image.point(lambda x:0 if x<143 else 255)
img_02.show()
image03.jpg
先灰度再二值化处理后输出对应的文字:# 导入Image包
from PIL import Image
from pytesseract import pytesseract
# 打开图像
image = Image.open("./image03.jpg")
# 灰度处理
img_new = image.convert("L")
# 二值化处理
img_03 = img_new.point(lambda x:0 if x<143 else 255)
img_03.show()
out_img = pytesseract.image_to_string(img_03)
print(out_img)
image03.jpg
原图和处理后效果:from PIL import ImageEnhance
img_enh = ImageEnhance.Contrast(img_03)
img_enh01 = img_enh.enhance(4)
img_enh01 .show()
out_img = pytesseract.image_to_string(img_enh01)
image04.jpg
输出完整代码:# 导入Image包
from PIL import Image
from pytesseract import pytesseract
from PIL import ImageEnhance
# 打开图像
image = Image.open("./image04.jpg")
# 灰度处理
img_new = image.convert("L")
# 二值化处理
img_04 = img_new.point(lambda x:0 if x<143 else 255)
# 图像增强
img_enh = ImageEnhance.Contrast(img_04)
img_enh01 = img_enh.enhance(4)
# 处理后图片
img_enh01.show()
# 提取图片文字
out_img = pytesseract.image_to_string(img_enh01)
print(out_img)
cookie
来跳过登录;selenium
中使用add_cookie()
方法将用户名和密码等登录信息写入浏览器的cookie
中,再次登录时直接读取浏览器cookie
即可。END今天的分享就到此结束了!点赞关注不迷路~