识别字体软件测试,2行代码帮你搞定自动化测试的文字识别

前言

Airtest是一款 基于图像识别原理 的跨平台UI自动化测试框架,它能够根据大量的 特征点 来识别一个截图在当前画面中的位置,但是它并不能识别出截图中具体包含了什么文字。

而在自动化测试的过程中,我们会经常遇到需要进行文字识别的场景,比如 识别验证码、识别截图中的文字、读取截图中的数值 等等,遇到这些情况时我们可以如何处理呢p>

今天教大家用一款免费的开源图像OCR文字识别软件 — Tesseract-OCR 来处理上述情况。

1.安装Tesseract-OCR.exe

在 上搜索“Tesseract”,我们可以找到很多Tesseract-OCR的下载链接和安装教程,大家可以选择其中一个版本下载到本地即可。

下载完成后双击进入安装,需要特别注意的是,在选择安装的组件时,我们需要把 Additional language data(download) 这一选项勾上,目的是 安装各个版本的语言包,后续我们就不用手动下载语言包来安装了。

另外一个要新增的环境变量是 TESSDATA_PREFIX ,如下图所示,未设置在识别过程中会 Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your “tessdata” directory 的错误:

2.在本地python环境中安装pytesseract

因为我们最终要在python环境中使用 airtest 和 tesseract ,所以需要在本地的python环境中安装上 airtest 库和 pytesseract 库:

pip install airtest

pip install pytesseract

安装完毕后可以在命令行输入 pip list 检查安装结果:

以之前官 提供的 poco demo的界面为例,我们用 airtest 把红框部分的截图截取下来,然后再利用 tesseract 把截图中的文字识别并打印出来:

知识点:

① G.DEVICE.snapshot(),对当前设备画面进行截图并保存在内存中。

② crop_image(),局部截图的方法,需要传入俩个参数,一个是内存中的截图,就像这里的 screen,另一个是截取偏移 [x_min, y_min, x_max ,y_max]。

③ Image.open(),用来直接读取给定路径指向的图片

④ image_to_string(),用来解析图片中的文字

4.识别验证码

以下述验证码截图为例,该截图的保存路径为 D:/test/7364.jpg :

5.识别中文文字

识别中文的方法和识别数字与英文基本一致,但比较特别的是,我们需要在 image_to_string() 方法中指定中文的语言参数(示例代码中指定了简体中文来识别截图):

相关资源:SRTApp:学生投票追踪器-其它代码类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月19日
下一篇 2021年6月19日

相关推荐