自动化测试验证码代码常用的四种方式
針對(duì)驗(yàn)證碼有如下方法:
一、在產(chǎn)品沒(méi)有上線前,需要找開(kāi)發(fā)先給web驗(yàn)證碼留后門(mén),也就是將驗(yàn)證碼驗(yàn)證先注釋掉
二、讓開(kāi)發(fā)給web驗(yàn)證碼留一個(gè)萬(wàn)用驗(yàn)證碼,只要輸入給的自定驗(yàn)證碼數(shù)字,字母,就可以強(qiáng)制登錄
三、當(dāng)有的頁(yè)面可以勾選保存用戶名,密碼可以通過(guò)Cookie跳過(guò)登錄驗(yàn)證碼,使用抓包工具就行了
四、使用驗(yàn)證碼識(shí)別技術(shù)
1.tesseract庫(kù),先下載pip --default-timeout=500 install -U Pillow 安裝Pillow也就是安裝PIL庫(kù)處理圖像用的庫(kù)
2.安裝 pytesseract庫(kù) pip install pytesseract
最后在百度下安裝tesseract 注意打開(kāi)C:\Program Files\Tesseract-OCR復(fù)制路徑而且是反斜杠,在打開(kāi)C:\Python\Python36\Lib\site-packages\pytesseract\pytesseract.py修改里面路徑
3.在百度安裝tesseract-OCR文件
配置環(huán)境變量
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
‘’’
導(dǎo)入包
from selenium import webdriver
import time
import pytesseract
from PIL import Image
from PIL import Image,ImageEnhance
打開(kāi)火狐
driver=webdriver.Firefox()
輸入網(wǎng)站
driver.get(‘網(wǎng)站’)
time.sleep(2)
#截圖或驗(yàn)證碼圖片保存地址
screenImg = r"D:\tupian\screenImg.png"
#登陸
driver.find_element_by_id(‘userid’).send_keys(‘賬號(hào)’)
driver.find_element_by_id(‘password’).send_keys(‘密碼’)
driver.find_element_by_id(‘image’).click()
#定位驗(yàn)證碼圖片
driver.find_element_by_id(‘image’).get_attribute(‘src’)
#對(duì)驗(yàn)證碼進(jìn)行截圖
driver.get_screenshot_as_file(screenImg)
#定位驗(yàn)證碼位置及大小
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’]
#從文件讀取截圖,截取驗(yàn)證碼位置再次保存
img = Image.open(screenImg).crop((left,top,right,bottom))
img = img.convert(‘L’) #轉(zhuǎn)換模式:L | RGB
img = ImageEnhance.Contrast(img)#增強(qiáng)對(duì)比度
img = img.enhance(2.0) #增加飽和度
#保存修改后圖片
img.save(screenImg)
#讀取驗(yàn)證碼
img = Image.open(screenImg)
注意:對(duì)安裝完成后需要使用pycharm進(jìn)行驗(yàn)證識(shí)別,如果成功識(shí)別驗(yàn)證碼就可以了
導(dǎo)入包
import pytesseract
from PIL import Image
圖片地址
image = Image.open(r’D:/tupian/screeImg.png’)
code = pytesseract.image_to_string(image)
print(code)
總結(jié)
以上是生活随笔為你收集整理的自动化测试验证码代码常用的四种方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在实时操作系统里随便写代码都能硬实时吗?
- 下一篇: 解决luyten 启动报错:this a