使用selenium进行自动化测试过程中,存在网站登录的时候需要输入验证码,由于是线上环境无法关闭,故使用tesseract工具辅助识别,但是较为复杂的验证码无法识别。

一、安装tesseract工具

1. 双击安装tesseract-ocr-w64-setup-v5.0.0.20190623.exe,需要记 住安装路径, 后续会使用上,并加入到环境变量,cmd命令窗口输入tesseract -v 验证是否安装正确

下载链接:Index of /tesseract

1.cmd中执行pip install pytesseract -i https://pypi.tuna.tsinghua.edu.cn/simple (存在python虚拟环境的话需要先 进入虚拟环境,电脑安装了loadrunner,使用pip3 install pytesseract -i https://pypi.tuna.tsinghua.edu.cn/simple)

3.在python的安装目录下的Lib\site-packages中找到修改python中pytesseract依赖中修改的pytesseract.py文件中的tesseract_cmd路径为第一步中的安装路径+tesseract.exe

centos安装tesseract,目前能找到的帖子一般都是让自己下载包,用./configure形式安装,这样太复杂。

测试可以直接用yum install tesseract方式搞定。步骤如下

1. 安装opencv

直接pip install opencv-python

2. yum install tesseract

会出现很多需要安装的依赖库,如leptonica等等,敲y,就一路安装到complete。

3.安装pytesseract

直接pip install pytesseract

具体实现验证码识别代码如下(每次识别可能出现识别不对的情况,可进行循环识别调用该方法即可,直到识别正确登录成功即可break):

import time
from PIL import Image
import pytesseract
def get_code(self):screenImg = "f.png"# 浏览器页面截屏self.dr.save_screenshot(screenImg)# 定位验证码位置及大小location = self.dr.find_element_by_xpath('//img[@class="code-img"]').locationsize = self.dr.find_element_by_xpath('//img[@class="code-img"]').sizerangle = (int(location['x']/0.8),int(location['y']/0.8),int(location['x']/0.8) + size['width']/0.8,int(location['y']/0.8) + size['height']/0.8,)  # 我们需要截取的验证码坐标(ps:如果电脑屏幕缩放比例不是100%,需要作出对应比例变更,我电脑屏幕缩放比例是推荐的125%,。可以在电脑的显示设置里面查看)i = Image.open('f.png')  # 整张网页verifycodeimage = i.crop(rangle)  # 从网页截图截取验证码区域verifycodeimage.save('f2.png')im = Image.open('f2.png')  # 验证码区域code = pytesseract.image_to_string(im, config='--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789')  #由于测试的网站是数字验证码,所以这里设置验证码识别范围# 输入识别的验证码self.dr.find_element_by_xpath('//input[@placeholder="请输入验证码"]').clear()self.dr.find_element_by_xpath('//input[@placeholder="请输入验证码"]').send_keys(code.strip()) #输入验证码self.dr.find_element_by_xpath('//button[@class="el-button login-btn el-button--primary el-button--large"]').click() #登录sleep(1)time.sleep(2)

UI自动化之登录验证码识别相关推荐

  1. UI自动化之图片验证码处理

    本文主要使用的库包括:ddddocr(带带弟弟OCR),PIL(图像处理),Selenium(UI自动化) 环境要求:python3.8以上 # 导包 import ddddocr from PIL ...

  2. 12306登录验证码识别

    最近在研究12306验证码识别,前期的12306查询验证码识别已经上线了,详见http://download.csdn.net/download/ghost_man_/10160932的博客,里面的1 ...

  3. web自动化之tesseract验证码识别,识别成功

    OCR识别技术 OCR中文名称光学识别, tesseract是一个有名的开源OCR识别框架,它与Leptonica图片处理库结合,可以读取各种格式的图像并将它们转化成超过60种语言的文本,可以不断训练 ...

  4. 12306登录验证码识别(Java版)

    懒惰是程序员的第一生产力 源码地址 1 服务器性能差,不要频繁请求(做了熔断保护处理) 2 上传标准图片 3 添加了爬虫爬取验证功能,设置了ajax返回数据的css样式 窝在家里没事干- python ...

  5. java通过ssh读取日志_IDEA+java通过SSH来进行分析日志,实现UI自动化动态验证码登录...

    在我写自动化脚本的时候是要真实发送验证码才能往下进行UI自动化 思路:验证码会显示在哪些地方,手机短信?数据库存储?日志? 完整代码如下: package guanyu.tools; import c ...

  6. 腾讯、网易、极验、顶象滑块验证码识别

    背景 验证码识别一直都是一个重要的话题,近日有一些公司询问 本地DLL验证码识别定制的事,可以联系QQ:1106965840 定制本地离线DLL验证码识别.另外给大家普及一下通用验证码识别和滑块缺口检 ...

  7. 本地通用验证码识别DLL/通用滑块识别/文字点选/图标点选/OCR文字识别/本地识别DLL

    背景 验证码识别一直都是一个重要的话题,近日有一些公司询问 本地DLL验证码识别定制的事,可以联系QQ:[167231471]定制本地离线DLL验证码识别.另外给大家普及一下通用验证码识别和滑块缺口检 ...

  8. 点选识别DLL/滑块识别DLL/通用验证码识别DLL/图标点选/本地识别DLL

    背景 验证码识别一直都是一个重要的话题,近日有一些公司询问 本地DLL验证码识别定制的事,可以联系QQ:[167231471]定制本地离线DLL验证码识别.另外给大家普及一下通用验证码识别和滑块缺口检 ...

  9. 写爬虫遇到验证码识别问题的解决方案

    写爬虫遇到验证码识别问题的解决方案 遇到滑块问题 在写爬虫的时候,经常会遇到滑块问题,很多次都想过尝试如何攻破滑块,但是每次都没成功,除了最开始的极验滑块,当时通过原图和滑块图的对比,能够得出缺口坐标 ...

最新文章

  1. mybatis-错误记录java.lang.ExceptionInInitializerError
  2. 想在SqlDbHelper.cs类中加的垃圾方法
  3. c语言中指针往内存写值,C语言编程常见问题解答之指针和内存分配
  4. 来淄博旅游_JAVA
  5. 我们编写的C代码是怎样跑起来的?
  6. spring -mvc 将对象封装json返回时删除掉对象中的属性注解方式
  7. 终于,我也到了和 Eclipse 说再见的时候,难说再见
  8. ICCV 2019 | 爱奇艺提出半监督损失函数,利用无标签数据优化人脸识别模型
  9. 知识图谱运用于推荐系统
  10. SQL Server批量插入数据
  11. macbook系统安装服务器,SVN-Mac安装服务器
  12. 什么是软件测试?软件测试的目的、意义是什么? 软件测试的流程是什么?
  13. 程序员那些必须掌握的排序算法(上)
  14. Jupyter Nbextensions插件功能大全
  15. Android 4.1 (Jelly Bean,果冻豆)
  16. 杀戮尖塔用java也打不开_游戏进不去 打不开 求救
  17. 渗透测试-微信刷票漏洞(IP伪造)
  18. python模型预测_用Python如何进行预测型数据分析
  19. springboot学习(七十三) springboot中使用springdoc替换swagger(springfox)
  20. layui解决数据表格右侧有空白现象

热门文章

  1. JS监听复制、粘贴、剪贴
  2. python新闻联播分类_新闻联播也可以拿用Python来做数据分析?
  3. C++ 虚函数实现机制
  4. 通用计算机连网,平板电脑怎么连接网络?平板电脑通用4种网络连接网络教程...
  5. 刺客信条奥德赛游戏景观Mac动态壁纸
  6. 『C # 开发』技能 Get√ ——制作CMD界面的简单GIF图片
  7. ctfshow-misc入门 1-30
  8. 全景视频拼接(二)--OpenCV源码解析
  9. mysql克隆schema_MySQL clone plugin(克隆插件)
  10. 必备元器件知识2(开关面包板)