概述
1.场景
想从UI上抓取“性能狗”悬浮窗的一些性能参数值,传统的UI获取元素的方式无法获取。
(性能狗有二次开发的现成接口,但是是商业版,需要花钱)
2.问题解决
可以借助tesseract-ocr工具,读取图片文字的方式,获取需要的文字;
tesseract-OCR是一个开源的OCR引擎,能识别100多种语言,专门用于对图片文字进行识别,并获取文本。但是它的缺点是对手写的识别能力比较差。
此时我们就可以先截取app图片,然后对图片上的文字进行读取。
3.工具、三方库的安装
(脚本环境:mac + python)
3.1 pc安装tesseract-ocr工具
# 需要提前安装brew工具,就不在这里赘述了
brew install tesseract
# 安装过程中可能会有brew工具更新的一些操作按照提示操作即可
# 比如:sudo chown -R $(whoami) /usr/local/var/log
# 安装完成后
tesseract -v # 出现版本信息,代表安装成功
'''
tesseract 4.1.1
leptonica-1.81.1
libgif 5.2.1 : libjpeg 9d : libpng 1.6.37 : libtiff 4.3.0 : zlib 1.2.11 : libwebp 1.2.0 : libopenjp2 2.4.0
Found AVX2
Found AVX
Found FMA
Found SSE
'''
3.2 安装python的pytesseract库
pip install pytesseract
# pytesseract是python中操作tesseract-ocr工具的现成库
4.脚本实例
import os
from PIL import Image
import pytesseract
import time
def get_pic():
# 截取手机端图片
os.system('adb shell screencap /sdcard/test.png')
os.system('adb pull /sdcard/test.png /Users/mimac/Desktop')
time.sleep(2)
# 抠取需要的文字内容 (我只需要左上角一小块的文字信息)
img = Image.open('/Users/mimac/Desktop/test.png')
im = img.crop((0, 75, 117, 136)) # 真能用到case中时,按屏幕比例切割即可
im.save('/Users/mimac/Desktop/test2.png')
time.sleep(2)
img2 = Image.open('/Users/mimac/Desktop/test2.png')
# 调取pytesseract库,读取图片,获取文字
en = pytesseract.image_to_string(img2)
print(type(en))
print(en)
app页面:
截取的图片:
打印结果:
<class 'str'>
FPS 0.0
CPU 0%
# 打印结果类型是字符串,获取具体数据时,继续操作字符串即可
截图注意:
文字页面尽量干净,底部不要有其它图案,
否则会影响文字读取的准确性。
最后
以上就是活泼橘子为你收集整理的tesseract-ocr识别图片文字,辅助测试的全部内容,希望文章能够帮你解决tesseract-ocr识别图片文字,辅助测试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复