在进行自动化测试,我发现很多人卡在验证码无法是识别的路上,往往都是需要开发提供万能码或者取消验证码,但是有的时候需要真实场景模拟,验证码的获取就比较困难,今天分享一个自己亲测的UI自动化测试登陆时验证码输入的有效简单的解决方法。
首先我采用的是python+tesserocr来识别验证码,下面是具体步骤
第一步、环境准备
1、python安装pytesseract和pillow库
2、win10安装tesserocr,下载tesseract并安装,默认路径即可
环境变量的配置:我的电脑-属性-高级设置-环境变量
系统变量中增减path变量:tesseract安装路径
系统新增TESSDATA_PREFIX 变量:tesseract安装路径\tessdata
3 修改pytesseract.py文件如下图
第二步:编写代码获取验证码
from pytesseract import pytesseract
from PIL import Image
from selenium import webdriver
import time as t
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get('需要输入验证码网页的url')
driver.find_element(By.ID, 'details-button').click()
driver.find_element(By.ID, 'proceed-link').click()
driver.find_element(By.XPATH,'验证码的定位位置').screenshot('验证码命名') # 截取验证码并保存到本地
img = Image.open(r'验证码命名')
ver = pytesseract.image_to_string(img,lang = 'eng') #识别验证码
print(ver)
with open('index.txt', "w") as f:
f.write("".join(ver.split())) # 去除空格的处理
with open("index.txt", "r") as f: # 获得验证码并赋值给a
a = f.read()
driver.find_element(By.XPATH,'输入验证码框的定位位置').send_keys(ver) # 输入验证码
t.sleep(3)
driver.quit()
第三步:成功获取验证码文章来源:https://www.toymoban.com/news/detail-549283.html
文章来源地址https://www.toymoban.com/news/detail-549283.html
到了这里,关于自动化测试识别验证码方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!