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实现文字图片识别

原文地址:https://www.cnblogs.com/jiahm/p/13533352.html