300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 自动化测试识别验证码方法

自动化测试识别验证码方法

时间:2018-12-03 10:48:08

相关推荐

自动化测试识别验证码方法

在进行自动化测试,我发现很多人卡在验证码无法是识别的路上,往往都是需要开发提供万能码或者取消验证码,但是有的时候需要真实场景模拟,验证码的获取就比较困难,今天分享一个自己亲测的UI自动化测试登陆时验证码输入的有效简单的解决方法。

首先我采用的是python+tesserocr来识别验证码,下面是具体步骤

第一步、环境准备

1、python安装pytesseract和pillow库

2、win10安装tesserocr,下载tesseract并安装,默认路径即可

环境变量的配置:我的电脑-属性-高级设置-环境变量

系统变量中增减path变量:tesseract安装路径

系统新增TESSDATA_PREFIX 变量:tesseract安装路径\tessdata

3 修改pytesseract.py文件如下图

第二步:编写代码获取验证码

from pytesseract import pytesseractfrom PIL import Imagefrom selenium import webdriverimport time as tfrom mon.by import Bydriver = 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: # 获得验证码并赋值给aa = f.read()driver.find_element(By.XPATH,'输入验证码框的定位位置').send_keys(ver) # 输入验证码t.sleep(3)driver.quit()

第三步:成功获取验证码

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。