国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python自動化測試之破解圖文驗證碼

89542767 / 558人閱讀

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


  對于web應用程序來講,處于安全性考慮,在登錄的時候,都會設置驗證碼,


  驗證碼的類型種類繁多,有圖片中辨別數字字母的,有點擊圖片中指定的文字的,也有算術計算結果的,再復雜一點就是滑動驗證的。


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

01.png

  1、Web自動化驗證碼解決方案


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


  第一種、讓開發去掉驗證碼


  第二種、設置一個萬能的驗證碼


  第三種、通過cookie繞過登錄


  第四種、自動識別技術識別驗證碼


  2、驗證碼解決方案


  #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)
  #找到驗證碼圖片,得到它的坐標
  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))
  #得到驗證碼圖片
  img.save(captcha_img_path)
  #打開驗證碼圖片
  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坐標像素點顏色
  pix=img.getpixel((y,x))
  #print(pix)
  #自己調色,r=0,g=0,b>0為藍色
  if pix[0]<20 and pix[1]<20 and pix[2]>50:
  #把遍歷的結果放到新圖片上,0為透明度,不透明
  img_new.putpixel((y,x),0)
  img_new.save(captcha_final_path,format='png')
  #通過tesseract工具解析驗證碼圖片,生成文本
  os.system(ocr_path)
  #讀取txt文件里面的驗證碼
  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'
  #接口-識別驗證碼
  def get_captcha(captcha_img_path,captcha_final_path,txt_path,ocr_path):
  #打開驗證碼圖片
  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坐標像素點顏色
  pix=img.getpixel((y,x))
  #print(pix)
  #自己調色,r=0,g=0,b>0為藍色
  if pix[0]<20 and pix[1]<20 and pix[2]>50:
  #把遍歷的結果放到新圖片上,0為透明度,不透明
  img_new.putpixel((y,x),0)
  img_new.save(captcha_final_path,format='png')
  #通過tesseract工具解析驗證碼圖片,生成文本,【Tesseract-OCR必須和jpg的根目錄必須相同,如C盤、D盤!!!】
  os.system(ocr_path)
  #讀取txt文件里面的驗證碼
  with open(txt_path,'r')as f:
  if r.read():
  t=f.read().strip()
  #去掉中間空格
  if''in t:
  t=t.replace('','')
  #如果是數字且長度為4,就返回數字,如果不是就返回fail
  if t.isdigit()and len(t)==4:
  return t
  else:
  return fail

  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128428.html

相關文章

  • python動化測試破解滑動驗證

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

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

    摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...

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

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

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

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

    番茄西紅柿 評論0 收藏2637

發表評論

0條評論

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