首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Selenium+python自动化82-只截某个元素的图

Selenium+python自动化82-只截某个元素的图

作者头像
上海-悠悠
发布2018-04-08 17:29:53
发布2018-04-08 17:29:53
2.4K0
举报

前言

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其实也提供了对元素截图的方法,但是会报错。据说只有Edge浏览器才能用,所以可以放弃。

二、location获取元素坐标

1.以百度的搜索按钮为例,打印搜索按钮所在的位置:

代码语言:javascript
复制
# coding:utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.baidu.com/')

driver.save_screenshot('button.png')
element = driver.find_element_by_id("su")

print(element.location)    # 打印元素坐标

2.返回结果:{'y': 233.0, 'x': 737.0},从返回的结果可以看出,返回的是一个字典类型数据

x代表横坐标,y代表纵坐标.(每个人的电脑窗口大小不一样,得到结果也不一样, 不用纠结)

三、size获取元素大小

1.获取元素的大小,用element.size就可以获取到了。

代码语言:javascript
复制
element = driver.find_element_by_id("su")
print(element.size)    # 打印元素大小

2.返回结果:{'width': 100, 'height': 36},这个也字典类型,width是宽度,height是高度。

四、安装pillow

1.cmd打开,输入:pip install pillow

五、案例参考

代码语言:javascript
复制
# coding:utf-8

from selenium import webdriver
from PIL import Image

driver = webdriver.Chrome()
driver.get('http://www.baidu.com/')

driver.save_screenshot('button.png')
element = driver.find_element_by_id("su")

print(element.location)   # 打印元素坐标
print(element.size)       # 打印元素大小

left = element.location['x']
top = element.location['y']
right = element.location['x'] + element.size['width']
bottom = element.location['y'] + element.size['height']

im = Image.open('button.png')
im = im.crop((left, top, right, bottom))
im.save('button.png')

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 前言
  • 一、selenium截图
  • 二、location获取元素坐标
  • 1.以百度的搜索按钮为例,打印搜索按钮所在的位置:
  • 三、size获取元素大小
  • 四、安装pillow
  • 五、案例参考
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档