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