python實現獲取登錄驗證碼圖片


  自動化測試登錄頁面一般都會存在驗證碼校驗問題,大部分童鞋都是直接把驗證碼校驗關閉掉,下面記錄的是如何獲取驗證碼圖片的方法:

1.首先獲取登錄頁面圖片;

2.確定驗證碼坐標和大小;

3.通過坐標和尺寸在登錄頁面上截取驗證碼圖片;

4.截取的驗證碼圖片保存為新的文件。

代碼實現如下:

from selenium import webdriver
import time
from PIL import Image

file_name = "C:/test.png"

driver = webdriver.Chrome()
driver.get("********")
driver.maximize_window()
time.sleep(2)

# 1.登錄頁面截圖並保存在C:/test.png
driver.save_screenshot(file_name)
# 2.獲取圖片驗證碼坐標和尺寸
code_element = driver.find_element_by_xpath(".//*[@id='verifyCodeImg']")
left = code_element.location['x']
top = code_element.location['y']
right = code_element.size['width']+left
height = code_element.size['height']+top
im = Image.open(file_name)
# 3.截取圖片驗證碼
img = im.crop((left, top, right, height))
# 4.截取的驗證碼圖片保存為新的文件
img.save(file_name)
driver.close()

 

  注:以上方法不是並非能精准獲取驗證碼圖片,比如登錄驗證了嵌套在iframe中,此時的驗證碼相對坐標位置就是iframe區域,這里就需要先截取整個iframe區域(iframe.png),然后根據驗證碼坐標位置在獲取的iframe圖片(iframe.png)上進行截取,最終獲得圖片驗證碼;

 驗證碼識別請查看下一篇博文:Python調用百度OCR識別API實現文字圖片識別


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM