自动化测试验证码代码常用的四种方式

针对验证码有如下方法:
一、在产品没有上线前,需要找开发先给web验证码留后门,也就是将验证码验证先注释掉
二、让开发给web验证码留一个万用验证码,只要输入给的自定验证码数字,字母,就可以强制登录
三、当有的页面可以勾选保存用户名,密码可以通过Cookie跳过登录验证码,使用抓包工具就行了
四、使用验证码识别技术
1.tesseract库,先下载pip --default-timeout=500 install -U Pillow 安装Pillow也就是安装PIL库处理图像用的库
2.安装 pytesseract库 pip install pytesseract
最后在百度下安装tesseract 注意打开C:\Program Files\Tesseract-OCR复制路径而且是反斜杠,在打开C:\Python\Python36\Lib\site-packages\pytesseract\pytesseract.py修改里面路径
3.在百度安装tesseract-OCR文件
配置环境变量
Path:C:\Program Files (x86)\Tesseract-OCR;
TESSDATA_PREFIX:C:\ProgramFiles(x86)\Tesseract-OCR;C:\ProgramFiles(x86)\Tesseract-OCR\tessdata

‘’’
@project:Selenium_SToom
@Time:2019-10-24 12:02
@Author:Felton

‘’’
导入包
from selenium import webdriver
import time
import pytesseract
from PIL import Image
from PIL import Image,ImageEnhance
打开火狐
driver=webdriver.Firefox()
输入网站
driver.get(‘网站’)

time.sleep(2)

#截图或验证码图片保存地址
screenImg = r"D:\tupian\screenImg.png"
#登陆
driver.find_element_by_id(‘userid’).send_keys(‘账号’)
driver.find_element_by_id(‘password’).send_keys(‘密码’)
driver.find_element_by_id(‘image’).click()
#定位验证码图片
driver.find_element_by_id(‘image’).get_attribute(‘src’)
#对验证码进行截图
driver.get_screenshot_as_file(screenImg)
#定位验证码位置及大小
location = driver.find_element_by_id(‘image’).location
size = driver.find_element_by_id(‘image’).size
left = location[‘x’]
top = location[‘y’]
right = location[‘x’] + size[‘width’]
bottom = location[‘y’] + size[‘height’]
#从文件读取截图,截取验证码位置再次保存
img = Image.open(screenImg).crop((left,top,right,bottom))
img = img.convert(‘L’) #转换模式:L | RGB
img = ImageEnhance.Contrast(img)#增强对比度
img = img.enhance(2.0) #增加饱和度
#保存修改后图片
img.save(screenImg)

#读取验证码
img = Image.open(screenImg)
注意:对安装完成后需要使用pycharm进行验证识别,如果成功识别验证码就可以了
导入包
import pytesseract
from PIL import Image
图片地址
image = Image.open(r’D:/tupian/screeImg.png’)
code = pytesseract.image_to_string(image)
print(code)

发布了6 篇原创文章 · 获赞 0 · 访问量 346

猜你喜欢

转载自blog.csdn.net/KermitKern/article/details/102743680