在web自动化测试过程中,常常会遇到验证码。而验证码如果要用图像识别等方式去处理,需要先对验证码元素进行截图,先对整个页面截图,再通过验证码位置裁切的方式获取验证码图片。
元素截图需要安装第三方pillow库,安装命令为“pip install pillow”。
示例:去哪儿网找回密码页面为例。
# coding = utf-8
from selenium import webdriver
from PIL import Image
d = webdriver.Chrome()
# 打开去哪儿网找回密码页面
d.get('https://user.qunar.com/sensitive/forgotpwd.jsp')
# 设置窗口最大化
d.maximize_window()
# 对页面进行截图
d.save_screenshot(r'image\qunar.png')
# 定位到要截图的元素
imgcode = d.find_element_by_class_name('vcodeimg')
# 截图的范围
left = imgcode.location['x']
top = imgcode.location['y']
right = left + imgcode.size['width']
bottom = top + imgcode.size['height']
# 截图
im = Image.open(r'image\qunar.png')
im = im.crop((left, top, right, bottom))
# 保存截图
im.save(r'image\code.png')
d.quit()