【python+selenium】截取某个元素

一、 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")
原文地址:https://www.cnblogs.com/dhs94/p/9147925.html