亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

python自動(dòng)化測(cè)試之破解圖文驗(yàn)證碼

89542767 / 714人閱讀

  小編寫這篇文章的主要目的,主要是用來(lái)給大家介紹關(guān)于python自動(dòng)化測(cè)試的一些事情,涉及到的內(nèi)容主要有包括破解圖文驗(yàn)證碼等相關(guān)的一些事宜,具體怎么才能夠破解圖文驗(yàn)證碼呢?下面就給大家詳細(xì)解答下。


  對(duì)于web應(yīng)用程序來(lái)講,處于安全性考慮,在登錄的時(shí)候,都會(huì)設(shè)置驗(yàn)證碼,


  驗(yàn)證碼的類型種類繁多,有圖片中辨別數(shù)字字母的,有點(diǎn)擊圖片中指定的文字的,也有算術(shù)計(jì)算結(jié)果的,再?gòu)?fù)雜一點(diǎn)就是滑動(dòng)驗(yàn)證的。


  諸如此類的驗(yàn)證碼,對(duì)我們的系統(tǒng)增加了安全性的保障,但是對(duì)于我們測(cè)試人員來(lái)講,在自動(dòng)化測(cè)試的過(guò)程中,無(wú)疑是一個(gè)棘手的問(wèn)題。

01.png

  1、Web自動(dòng)化驗(yàn)證碼解決方案


  一般在我們測(cè)試過(guò)程中,登錄遇到上述的驗(yàn)證碼的時(shí)候,有以下種解決方案:


  第一種、讓開(kāi)發(fā)去掉驗(yàn)證碼


  第二種、設(shè)置一個(gè)萬(wàn)能的驗(yàn)證碼


  第三種、通過(guò)cookie繞過(guò)登錄


  第四種、自動(dòng)識(shí)別技術(shù)識(shí)別驗(yàn)證碼


  2、驗(yàn)證碼解決方案


  #coding:utf-8
  import os
  import subprocess
  from PIL import Image
  def get_captcha(driver,captcha_id,full_screen_img_path,captcha_img_path,captcha_final_path,txt_path,ocr_path):
  #瀏覽器界面截圖
  driver.save_screenshot(full_screen_img_path)
  #找到驗(yàn)證碼圖片,得到它的坐標(biāo)
  element=driver.find_element_by_id(captcha_id)
  left=element.location['x']
  top=element.location['y']
  right=element.location['x']+element.size['width']
  bottom=element.location['y']+element.size['height']
  left,top,right,bottom=int(left),int(top),int(right),int(bottom)
  img=Image.open(full_screen_img_path)
  img=img.crop((left,top,right,bottom))
  #得到驗(yàn)證碼圖片
  img.save(captcha_img_path)
  #打開(kāi)驗(yàn)證碼圖片
  img=Image.open(captcha_img_path)
  #顏色直方圖,255種顏色,255為白色
  #新建一張圖片(大小和原圖大小相同,背景顏色為255白色)
  img_new=Image.new('P',img.size,255)
  for x in range(img.size[1]):
  for y in range(img.size[0]):
  #遍歷圖片的xy坐標(biāo)像素點(diǎn)顏色
  pix=img.getpixel((y,x))
  #print(pix)
  #自己調(diào)色,r=0,g=0,b>0為藍(lán)色
  if pix[0]<20 and pix[1]<20 and pix[2]>50:
  #把遍歷的結(jié)果放到新圖片上,0為透明度,不透明
  img_new.putpixel((y,x),0)
  img_new.save(captcha_final_path,format='png')
  #通過(guò)tesseract工具解析驗(yàn)證碼圖片,生成文本
  os.system(ocr_path)
  #讀取txt文件里面的驗(yàn)證碼
  with open(txt_path,'r')as f:
  if f.read():
  t=f.read().strip()
  #去掉中間空格
  if''in t:
  t=t.replace('','')
  if t.isdigit()and len(t)==4:
  return t
  else:
  return'fail'
  def check_resp(result,msg):
  if msg in result:
  return'pass'
  else:
  return'failed'
  #接口-識(shí)別驗(yàn)證碼
  def get_captcha(captcha_img_path,captcha_final_path,txt_path,ocr_path):
  #打開(kāi)驗(yàn)證碼圖片
  img=Image.open(captcha_img_path)
  #新建一張圖片(大小和原圖大小相同,背景顏色為255白色)
  img_new=Image.new('P',img.size,55)
  for x in range(img.size[1]):
  for y in range(img.size[0]):
  #遍歷圖片的xy坐標(biāo)像素點(diǎn)顏色
  pix=img.getpixel((y,x))
  #print(pix)
  #自己調(diào)色,r=0,g=0,b>0為藍(lán)色
  if pix[0]<20 and pix[1]<20 and pix[2]>50:
  #把遍歷的結(jié)果放到新圖片上,0為透明度,不透明
  img_new.putpixel((y,x),0)
  img_new.save(captcha_final_path,format='png')
  #通過(guò)tesseract工具解析驗(yàn)證碼圖片,生成文本,【Tesseract-OCR必須和jpg的根目錄必須相同,如C盤、D盤?。?!】
  os.system(ocr_path)
  #讀取txt文件里面的驗(yàn)證碼
  with open(txt_path,'r')as f:
  if r.read():
  t=f.read().strip()
  #去掉中間空格
  if''in t:
  t=t.replace('','')
  #如果是數(shù)字且長(zhǎng)度為4,就返回?cái)?shù)字,如果不是就返回fail
  if t.isdigit()and len(t)==4:
  return t
  else:
  return fail

  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)幫助。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/128428.html

相關(guān)文章

  • python動(dòng)化測(cè)試破解滑動(dòng)驗(yàn)證

      python作為一門比較常見(jiàn)的編程語(yǔ)言,在工作當(dāng)中的應(yīng)用還是比較的廣泛的,比如可以對(duì)此進(jìn)行相關(guān)的自動(dòng)化測(cè)試,比如自動(dòng)化測(cè)試相關(guān)的代碼,另外還有破解滑動(dòng)驗(yàn)證碼。那么,具體的操作手法是怎樣的呢?下面就給大家詳細(xì)解答下?! ≡赪eb自動(dòng)化測(cè)試的過(guò)程中,經(jīng)常會(huì)被登錄的驗(yàn)證碼給卡住,不知道如何去通過(guò)驗(yàn)證碼的驗(yàn)證?! ∫话愕那闆r下遇到驗(yàn)證碼我們可以都可以找開(kāi)發(fā)去幫忙解決,關(guān)閉驗(yàn)證碼,或者給一個(gè)萬(wàn)能的驗(yàn)證碼...

    89542767 評(píng)論0 收藏0
  • 首次公開(kāi),整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0
  • 總結(jié) XSS 與 CSRF 兩種跨站攻擊

    摘要:但最近又聽(tīng)說(shuō)了另一種跨站攻擊,于是找了些資料了解了一下,并與放在一起做個(gè)比較。腳本中的不速之客全稱跨站腳本,是注入攻擊的一種。 XSS:跨站腳本(Cross-site scripting) CSRF:跨站請(qǐng)求偽造(Cross-site request forgery) 在那個(gè)年代,大家一般用拼接字符串的方式來(lái)構(gòu)造動(dòng)態(tài) SQL 語(yǔ)句創(chuàng)建應(yīng)用,于是 SQL 注入成了很流行的攻擊方式。...

    jcc 評(píng)論0 收藏0
  • godaddy域名怎么轉(zhuǎn)出去?godaddy將域名轉(zhuǎn)出遷移的步驟教程

    摘要:域名域名怎么轉(zhuǎn)出去是全球最大的域名主機(jī)服務(wù)商,近年來(lái)選擇域名注冊(cè)的人是非常多的,那也有朋友因?yàn)檫@樣或那樣的原因想要將域名從轉(zhuǎn)移出來(lái),那么具體要怎么操作呢讓我們來(lái)了解一下。將域名轉(zhuǎn)出遷移的步驟流程登錄域名控制中心。godaddy域名怎么轉(zhuǎn)出去?godaddy是全球最大的域名主機(jī)服務(wù)商,近年來(lái)選擇域名注冊(cè)的人是非常多的,那也有朋友因?yàn)檫@樣或那樣的原因想要將域名從Godaddy轉(zhuǎn)移出來(lái),那么具體要...

    番茄西紅柿 評(píng)論0 收藏2637

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<