前言

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.以百度的搜索按钮为例,打印搜索按钮所在的位置:

  1. # coding:utf-8
  2. from selenium import webdriver
  3. driver = webdriver.Chrome()
  4. driver.get('http://www.baidu.com/')
  5. driver.save_screenshot('button.png')
  6. element = driver.find_element_by_id("su")
  7. print(element.location) # 打印元素坐标

2.返回结果:{'y': 233.0, 'x': 737.0},从返回的结果可以看出,返回的是一个字典类型数据
x代表横坐标,y代表纵坐标.(每个人的电脑窗口大小不一样,得到结果也不一样, 不用纠结)

size获取元素大小

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

  1. element = driver.find_element_by_id("su")
  2. print(element.size) # 打印元素大小

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

安装pillow

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

案例参考

  1. # coding:utf-8
  2. from selenium import webdriver
  3. from PIL import Image
  4. driver = webdriver.Chrome()
  5. driver.get('http://www.baidu.com/')
  6. driver.save_screenshot('button.png')
  7. element = driver.find_element_by_id("su")
  8. print(element.location) # 打印元素坐标
  9. print(element.size) # 打印元素大小
  10. left = element.location['x']
  11. top = element.location['y']
  12. right = element.location['x'] + element.size['width']
  13. bottom = element.location['y'] + element.size['height']
  14. im = Image.open('button.png')
  15. im = im.crop((left, top, right, bottom))
  16. im.save('button.png')

selenium+python自动化82-只截某个元素的图【转载】的更多相关文章

  1. selenium+python自动化104-如何获取隐藏元素text文本

    前言 首先 selenium 是可以定位到隐藏元素的,但是 selenium 不能跟隐藏元素交互,也就是隐藏元素element不能使用element.click()方法. 隐藏元素element.te ...

  2. selenium+python自动化78-autoit参数化与批量上传【转载】

    转至博客:上海-悠悠 前言前一篇autoit实现文件上传打包成.exe可执行文件后,每次只能传固定的那个图片,我们实际测试时候希望传不同的图片.这样每次调用的时候,在命令行里面加一个文件路径的参数就行 ...

  3. selenium+python自动化79-文件下载(SendKeys)【转载】

    前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用S ...

  4. selenium+python自动化79-文件下载(SendKeys)

    前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用S ...

  5. selenium+python自动化98--文件下载弹窗处理(PyKeyboard)

    前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击, ...

  6. 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)

    Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...

  7. selenium+python自动化82-只截某个元素的图

    前言 selenium截取全图小伙伴们都知道,曾经去面试的时候,面试官问:如何截图某个元素的图?不要全部的,只要某个元素...小编一下子傻眼了, 苦心人,天不负,终于找到解决办法了. selenium ...

  8. selenium+python自动化登录脚本

    利用selenium+python写的一个关于登录的自动化脚本

  9. selenium+python自动化102-登录页面滑动解锁(ActionChains)

    前言 登录页面会遇到滑动解锁,滑动解锁的目的就是为了防止别人用代码登录(也就是为了防止你自动化登录),有些滑动解锁是需要去拼图这种会难一点. 有些直接拖到最最右侧就可以了,本篇讲下使用 seleniu ...

随机推荐

  1. Spring Boot学习(二):配置文件

    目录 前言 方式1:通过配置绑定对象的方式 方式2:@Value("${blog.author}")的形式获取属性值 相关说明 注解@Value的说明 参考 前言 Spring B ...

  2. Java作业09-异常

    6. 为如下代码加上异常处理 byte[] content = null; FileInputStream fis = new FileInputStream("testfis.txt&qu ...

  3. 【PHP】- 魔术常量

    PHP 向它运行的任何脚本提供了大量的预定义常量.不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了.有八个魔术常量它们的值随着它们在代 ...

  4. 【历史】- Unix时代的开创者Ken Thompson

    自图灵奖诞生以来,其获得者一直都是计算机领域的科学家与学者,而在所有这些界的图灵奖中只有唯一的一届有个例外,那就是Ken Thompson与Dennis M. Ritchie,他们都是计算机软件工程师 ...

  5. [洛谷P3690]【模板】Link Cut Tree (动态树)

    题目大意:给定$n$个点以及每个点的权值,要你处理接下来的$m$个操作.操作有$4$种.操作从$0到3编号.点从1到n编号. $0,x,y$:代表询问从$x$到$y$的路径上的点的权值的$xor$和. ...

  6. BZOJ 2820: YY的GCD | 数论

    题目: 题解: http://hzwer.com/6142.html #include<cstdio> #include<algorithm> #define N 100000 ...

  7. [Leetcode] Longest consecutive sequence 最长连续序列

    Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F ...

  8. BZOJ1876 [SDOI2009]SuperGCD 【高精 + GCD优化】

    题目 Sheng bill有着惊人的心算能力,甚至能用大脑计算出两个巨大的数的GCD(最大公约 数)!因此他经常和别人比 赛计算GCD.有一天Sheng bill很嚣张地找到了你,并要求和你比 赛,但 ...

  9. 获取Parameter参数值,方便调试使用

    #region #warning 调试使用,获取sql参数化,拼接出完整的sql语句,复制sql明文到mssql中运行 string debugSql = queryHelper.CommandTex ...

  10. im4java学习---阅读documentation文档

    Utilities----im提供的一些工具类 ①.读取图片文件信息---Info类 我们之前的做法: op.format("width:%w,height:%h,path:%d%f,siz ...