一、 selenium截图
1.selenium提供了几个截取全屏的方法
- get_screenshot_as_file(self, filename)
--这个方法是获取当前window的截图,出现IOError时候返回False,截图成功返回True。
filename参数是保存文件的路径。
> driver.get_screenshot_as_file('/Screenshots/foo.png')
- get_screenshot_as_base64(self)
--这个方法也是获取屏幕截图,保存的是base64的编码格式,在HTML界面输出截图的时候,会用到。
比如,想把截图放到html测试报告里。
> driver.get_screenshot_as_base64()
- get_screenshot_as_png(self)
--这个是获取屏幕截图,保存的是二进制数据,很少用到.
> driver.get_screenshot_as_png()
2.selenium其实也提供了对元素截图的方法,但是会报错。
二、安装pillow
在cmd中输入 pip install pillow 安装pillow时报错“Could not find a version that satisfies the requirement pollow (from version).....”
百度过后升级pip python -m pip install --upgrade pip后再次安装pip时成功
三、截取某元素
参考代码
# coding:utf-8
from selenium import webdriver
from PIL import Image
driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
e=driver.find_element_by_id("su")
driver.get_screenshot_as_file(r"C:\Users\Administrator\Desktop\button.png")
#打印元素坐标
print(e.location)
#打印元素大小
print(e.size)
left=e.location['x']
top=e.location['y']
right=left+e.size['width']
bottom=top+e.size['height']
im=Image.open(r"C:\Users\Administrator\Desktop\button.png")
#对图片进行裁剪
im=im.crop((left,top,right,bottom))
im.save(r"C:\Users\Administrator\Desktop\button.png")