一、 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时成功
三、截取某元素
参考代码
1 # coding:utf-8 2 from selenium import webdriver 3 from PIL import Image 4 driver=webdriver.Firefox() 5 driver.get("https://www.baidu.com") 6 e=driver.find_element_by_id("su") 7 driver.get_screenshot_as_file(r"C:UsersAdministratorDesktoputton.png") 8 #打印元素坐标 9 print(e.location) 10 #打印元素大小 11 print(e.size) 12 left=e.location['x'] 13 top=e.location['y'] 14 right=left+e.size['width'] 15 bottom=top+e.size['height'] 16 im=Image.open(r"C:UsersAdministratorDesktoputton.png") 17 #对图片进行裁剪 18 im=im.crop((left,top,right,bottom)) 19 im.save(r"C:UsersAdministratorDesktoputton.png")