首页 > Web开发 > 详细

识别动态验证码--web自动化测试

时间:2020-06-23 11:38:06      阅读:66      评论:0      收藏:0      [点我收藏+]

1.安装pillow,pytesseract

pip install pillow
pip install pytesseract

2.识别验证码

    def get_verifycode(self):
        ‘‘‘识别验证码‘‘‘
        # 1.定位验证码位置及大小
        verifycode_element = self.verifycode_image_element  # 定位验证码

        location = verifycode_element.location  # 获取验证码x,y坐标
        size = verifycode_element.size  # 验证码高度、宽度、
        zuobiao = (
            int(location[x]), int(location[y]), int(location[x] + size[width]),
            int(location[y] + size[height]))

        # 2.截屏,在截屏中截取验证码位置,再次保存
        image_name = self.save_screenshot()  # 截屏
        img = Image.open(image_name).crop(zuobiao)  # 打开截图
        img = img.convert(RGB)
        img.save(image_name)

        # 3.再次读取识别验证码
        code = pytesseract.image_to_string(Image.open(image_name))

        # 正则表达式去除空格或其他特殊符号
        b = ‘‘
        for i in code.strip():
            # pattern = re.compile(r‘[a-zA-Z0-9]‘)
            pattern = re.compile(r[0-9])  # 由于本系统的验证码都是数字,所以正则匹配时,只验证数字
            m = pattern.search(i)
            if m != None:
                b += i
        return b

3.pytesseract模块使用出现错误:tesseract is not installed or it‘s not in your path,处理方法:

  1)下载tesseract-ocr:tesseract-ocr下载地址:https://github.com/tesseract-ocr/tesseract/wiki

  2)安装tesseract-ocr:双击.exe文件安装,并记住安装路径

               技术分享图片

 

 

   3)修改python安装路径中的pytesseract.py文件,将tesseract_cmd改为r‘F:\Program Files (x86)\Tesseract-OCR\tesseract.exe‘

    文件路径:pyhton安装路径\Lib\site-packages\pytesseract\pytesseract.py

               技术分享图片

 

识别动态验证码--web自动化测试

原文:https://www.cnblogs.com/pikaqiu12/p/13181005.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!