Python 脚本自动获取验证码解决UI自动化识别问题

这小半年实在太忙,都没时间学习了,有点慌。
关于验证码的问题,以前搞过,今天抽时间将这个总结补上。

解决UI自动化过程中的图文验证码问题,过程大致分为两个步骤:

  1. 通过网页自动下载网页上指定的图片

  2. 识别图片上的文本内容

本文以“识别页面上指定图片的文本“为例。
以百度首页的 Baidu 为例。

环境准备

Python 3.6
Pytesseract
Tesseract-OCR
Pillow

1、安装 Pytesseract
使用命令:pip install pytesseract Python 脚本自动获取验证码解决UI自动化识别问题_第1张图片
2、安装 Tesseract-OCR.exe
下载地址 https://github.com/UB-Mannheim/tesseract/wiki#start-of-content
Python 脚本自动获取验证码解决UI自动化识别问题_第2张图片
待下载完成后,双击.exe ,然后直接 next
Python 脚本自动获取验证码解决UI自动化识别问题_第3张图片
Python 脚本自动获取验证码解决UI自动化识别问题_第4张图片
在安装过程中,如果报错,点击 确定 就可以了
Python 脚本自动获取验证码解决UI自动化识别问题_第5张图片
安装完成后,需要配置环境变量。
Python 脚本自动获取验证码解决UI自动化识别问题_第6张图片
检查是否安装成功
cmd 输入 Tesseract -v

Python 脚本自动获取验证码解决UI自动化识别问题_第7张图片
4、安装pillow
Python自带的图文简单处理模块,正常安装Python的时候会自动安装,故无需另外手动安装。
pip install pillow

代码

1、初始化浏览器和元素定位方式
1)初始化并放大浏览器
2)初始化元素定位方式:本文使用id选择器方式定位 (此处不讨论定位方式)
Python 脚本自动获取验证码解决UI自动化识别问题_第8张图片

2、获取图片
1)页面全屏截图
2)截图转为Image对象
3)获取指定图片的大小和位置
4)裁剪图片
Python 脚本自动获取验证码解决UI自动化识别问题_第9张图片
3、识别图片上的文字
Python 脚本自动获取验证码解决UI自动化识别问题_第10张图片

然后运行后,得出结果
Python 脚本自动获取验证码解决UI自动化识别问题_第11张图片
附:
其实,这种识别率不是很高,占比70% 左右,在没有更好方法的i情况下,可以考虑。
问题:
在运行过程中,出现过 tesseract is not installed or it’s not in your PATH
Python 脚本自动获取验证码解决UI自动化识别问题_第12张图片解决方法:
1、可以卸载 了Tesseract.exe 后重新进行安装在 Python的安装路径下。
2、打开pytesseract源码
查找 tesseract_cmd = ‘tesseract’
发现上面有一行注释 # CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
由于 TESSERACT 所在目录不同,需要手动更改目录
此行修改为
tesseract_cmd = r’C:\Program Files\Tesseract-OCR\tesseract.exe’

以上两种方法都可以。

抽时间总结了一份jmeter使用文档、python接口自动化测试,app专项性能测试,需要的可以加v 交流 (备注 :测试人员)
Python 脚本自动获取验证码解决UI自动化识别问题_第13张图片

你可能感兴趣的:(Python,python)