UI自动化之登录验证码识别
使用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自动化之登录验证码识别相关推荐
- UI自动化之图片验证码处理
本文主要使用的库包括:ddddocr(带带弟弟OCR),PIL(图像处理),Selenium(UI自动化) 环境要求:python3.8以上 # 导包 import ddddocr from PIL ...
- 12306登录验证码识别
最近在研究12306验证码识别,前期的12306查询验证码识别已经上线了,详见http://download.csdn.net/download/ghost_man_/10160932的博客,里面的1 ...
- web自动化之tesseract验证码识别,识别成功
OCR识别技术 OCR中文名称光学识别, tesseract是一个有名的开源OCR识别框架,它与Leptonica图片处理库结合,可以读取各种格式的图像并将它们转化成超过60种语言的文本,可以不断训练 ...
- 12306登录验证码识别(Java版)
懒惰是程序员的第一生产力 源码地址 1 服务器性能差,不要频繁请求(做了熔断保护处理) 2 上传标准图片 3 添加了爬虫爬取验证功能,设置了ajax返回数据的css样式 窝在家里没事干- python ...
- java通过ssh读取日志_IDEA+java通过SSH来进行分析日志,实现UI自动化动态验证码登录...
在我写自动化脚本的时候是要真实发送验证码才能往下进行UI自动化 思路:验证码会显示在哪些地方,手机短信?数据库存储?日志? 完整代码如下: package guanyu.tools; import c ...
- 腾讯、网易、极验、顶象滑块验证码识别
背景 验证码识别一直都是一个重要的话题,近日有一些公司询问 本地DLL验证码识别定制的事,可以联系QQ:1106965840 定制本地离线DLL验证码识别.另外给大家普及一下通用验证码识别和滑块缺口检 ...
- 本地通用验证码识别DLL/通用滑块识别/文字点选/图标点选/OCR文字识别/本地识别DLL
背景 验证码识别一直都是一个重要的话题,近日有一些公司询问 本地DLL验证码识别定制的事,可以联系QQ:[167231471]定制本地离线DLL验证码识别.另外给大家普及一下通用验证码识别和滑块缺口检 ...
- 点选识别DLL/滑块识别DLL/通用验证码识别DLL/图标点选/本地识别DLL
背景 验证码识别一直都是一个重要的话题,近日有一些公司询问 本地DLL验证码识别定制的事,可以联系QQ:[167231471]定制本地离线DLL验证码识别.另外给大家普及一下通用验证码识别和滑块缺口检 ...
- 写爬虫遇到验证码识别问题的解决方案
写爬虫遇到验证码识别问题的解决方案 遇到滑块问题 在写爬虫的时候,经常会遇到滑块问题,很多次都想过尝试如何攻破滑块,但是每次都没成功,除了最开始的极验滑块,当时通过原图和滑块图的对比,能够得出缺口坐标 ...
最新文章
- following symbols must have non local/private scope错误问题解决方法
- css画钟表_纯Shading Language绘制HTML5时钟
- 使用 SAP UI5 CLI 命令行工具构建和运行 SAP UI5 应用
- html5不支持的属性,HTML5 常用语法一览(列举不支持的属性)
- Struts2入门到放弃
- 经典vim插件功能说明、安装方法和使用方法
- 【Keil 5】STM32F401CCU6 固件库配置(超详细教程)
- SiC MOSFET动态测试上位机软件使用说明
- 常见的服务器虚拟化产品都有哪些,桌面虚拟化产品主要有哪几种主流技术分类呢?...
- 链路追踪Zipkin
- 开启微信公众号定位服务器,微信公众号的定位是怎样的?
- 联网下载jar包导入本地Maven库
- 二进制#逻辑计算#与(∧)、或(∨)、非(¬)、异或(⨁)#与,或,非,异或的运算法则#与,或,非,异或运算的基础代码
- Railway是另一种PaaS云服务
- 神经刺激对脑功能和认知的状态依赖效应
- 【算法】树状数组 P1908 逆序对
- 电力系统【第八章:电力系统不对称故障的分析与计算】
- 安卓毕设项目总结(一)校园订餐app
- HaaS100开发板WiFi与蓝牙无法共用的解决方法
- 2020 AI 算法工程师常见知识点整合
热门文章
- git 提交代码时 remote: error:
- asp.net 嵌入realplayer
- 销售订单、外向交货单、交货 bapi
- AR内容开发--AR开发引擎和SDK
- 【§孤独的猫xp电脑主题下载§系统美化】
- 飞机大战java代码_[源码和文档分享]Java飞机大战游戏设计与实现
- 出门问问携手星网云,数字人赋能跨境电商新增长
- 星网视易开机显示服务器负载,HikariPool-1-连接不可用,对于极小的负载服务器,请求在30000ms后超时...
- Android的重力传感器(3轴加速度传感器)简单实例
- jupyter下的ipynb文件转换为pdf并且完全保留图片