成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python自動化測試之破解圖文驗(yàn)證碼

89542767 / 577人閱讀

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


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


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


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

01.png

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


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


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


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


  第三種、通過cookie繞過登錄


  第四種、自動識別技術(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)
  #打開驗(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')
  #通過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'
  #接口-識別驗(yàn)證碼
  def get_captcha(captcha_img_path,captcha_final_path,txt_path,ocr_path):
  #打開驗(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')
  #通過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ù)字且長度為4,就返回?cái)?shù)字,如果不是就返回fail
  if t.isdigit()and len(t)==4:
  return t
  else:
  return fail

  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/128428.html

相關(guān)文章

  • python動化測試破解滑動驗(yàn)證

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

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

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

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

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

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

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

    番茄西紅柿 評論0 收藏2637

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<