使用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. following symbols must have non local/private scope错误问题解决方法
  2. css画钟表_纯Shading Language绘制HTML5时钟
  3. 使用 SAP UI5 CLI 命令行工具构建和运行 SAP UI5 应用
  4. html5不支持的属性,HTML5 常用语法一览(列举不支持的属性)
  5. Struts2入门到放弃
  6. 经典vim插件功能说明、安装方法和使用方法
  7. 【Keil 5】STM32F401CCU6 固件库配置(超详细教程)
  8. SiC MOSFET动态测试上位机软件使用说明
  9. 常见的服务器虚拟化产品都有哪些,桌面虚拟化产品主要有哪几种主流技术分类呢?...
  10. 链路追踪Zipkin
  11. 开启微信公众号定位服务器,微信公众号的定位是怎样的?
  12. 联网下载jar包导入本地Maven库
  13. 二进制#逻辑计算#与(∧)、或(∨)、非(¬)、异或(⨁)#与,或,非,异或的运算法则#与,或,非,异或运算的基础代码
  14. Railway是另一种PaaS云服务
  15. 神经刺激对脑功能和认知的状态依赖效应
  16. 【算法】树状数组 P1908 逆序对
  17. 电力系统【第八章:电力系统不对称故障的分析与计算】
  18. 安卓毕设项目总结(一)校园订餐app
  19. HaaS100开发板WiFi与蓝牙无法共用的解决方法
  20. 2020 AI 算法工程师常见知识点整合

热门文章

  1. git 提交代码时 remote: error:
  2. asp.net 嵌入realplayer
  3. 销售订单、外向交货单、交货 bapi
  4. AR内容开发--AR开发引擎和SDK
  5. 【§孤独的猫xp电脑主题下载§系统美化】
  6. 飞机大战java代码_[源码和文档分享]Java飞机大战游戏设计与实现
  7. 出门问问携手星网云,数字人赋能跨境电商新增长
  8. 星网视易开机显示服务器负载,HikariPool-1-连接不可用,对于极小的负载服务器,请求在30000ms后超时...
  9. Android的重力传感器(3轴加速度传感器)简单实例
  10. jupyter下的ipynb文件转换为pdf并且完全保留图片