前言

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

# 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就可以获取到了。

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

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

安装pillow

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

案例参考

# 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')

seleniumQQ群:646645429

selenium+python自动化82-只截某个元素的图相关推荐

  1. 已解决python selenium模块自动化操作谷歌浏览器点击元素失效问题解决(亲测有效)

    已解决python selenium模块自动化操作浏览器点击元素,抛出异常selenium.common.exceptions.ElementClickInterceptedException: Me ...

  2. Selenium+Python如何定位鼠标悬停的元素

    Selenium+Python如何定位鼠标悬停的元素? 下面以登录百度后,鼠标悬停在个人中心,点击[退出登录]为例. Selenium+Python如何定位鼠标悬停的元素? 一.环境 二.代码 三.定 ...

  3. python自动化等待时间_python+appium 自动化测试 - 元素等待

    该篇文章主要用于整理的是在执行自动化测试过程中的几种元素等待方法 implicity_wait() sleep() wait_activity() 等待某元素出现后,再执行操作 WebDriverWa ...

  4. Appium+python自动化(九)- 定位元素工具(义结金兰的两位异性兄弟)(超详解)...

    简介 环境搭建好了,其他方面的知识也准备的差不多了,那么我们就开始下一步元素定位,元素定位宏哥主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作. 此 ...

  5. selenium+python自动化,数据驱动实例

    1.读取txt read() 读取整个文件. readline() 读取一行数据. readlines() 读取所有行的数据. 例: #coding=utf-8 from selenium impor ...

  6. selenium+python自动化77-autoit文件上传【转载】

    前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工 ...

  7. selenium+python自动化81-html报告优化(饼图+失败重跑+兼容python23)

    优化html报告 为了满足小伙伴的各种变态需求,为了装逼提升逼格,为了让报告更加高大上,测试报告做了以下优化: 测试报告中文显示,优化一些断言失败正文乱码问题 新增错误和失败截图,展示到html报告里 ...

  8. selenium+python自动化84-chrome手机wap模式

    前言 我的环境 chrome 62 chromedriver 2.33 遇到问题 1.登录手机版淘宝时候,验证码无法通过点击事件触发 [wap版淘宝](https://login.m.taobao.c ...

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

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

最新文章

  1. 电视机当计算机屏幕,电视机可以当电脑显示器吗
  2. 看不清的融资迷局 二线玩家字节跳动在打什么主意?
  3. scss编译输出css并转换成rem
  4. 使用python开发网页游戏_四大游戏编程网站,边玩游戏,边学Python,拒绝枯燥快乐编程...
  5. shell脚本if语句判断
  6. matlab聚合矩阵,c#和ILNumerics与Matlab中最有效的矩阵聚合方式
  7. 如何配置 Windows XP SP2 中的 Internet Explorer 增强安全功能
  8. 微信小程序-day1
  9. 深入分析Linux自旋锁
  10. Installshield2008教程
  11. 兄弟7895dw粉盒清零_兄弟brother打印机清零大全
  12. H.323 and Associated Protocols
  13. html5关于校庆作品名称,五十五周年校庆标语
  14. STM32 MPU6050与匿名上位机通讯(V2.6版)
  15. Multi-way PCA——多维主成分分析
  16. Camtasia2022屏幕录像编辑软件套装应用
  17. 美食大战老鼠html,美食大战老鼠卤料花园过法详解
  18. F5 BIG-IP iControl RCE (CVE-2021-22986)
  19. 行业 | 谷歌和亚马逊在赌场门口拉客,你上谁的船?
  20. 送餐app+php,订餐APP源码Food Delivery App v2.1(客户端+服务端)

热门文章

  1. 二叉树 平衡二叉树 红黑树_迅捷树,二叉树
  2. [SCOI2005][BZOJ 1084]最大子矩阵
  3. WEB应用安全解决方案测试验证
  4. (二)CXF之用CXF官方工具生成客户端Client
  5. Ambari HDP 完整安装手册
  6. 联合多企业成立泛娱乐IP联盟 迅雷将打造新内容消费生态
  7. #iOS问题记录# 关于UITableViewcel的分割线去掉问题
  8. 沈志勇-百度大数据引擎与分析预测
  9. VC与JAVA DES加密算法互操作
  10. 【Hard 递归 动态规划 回文串15】LeetCode 730. Count Different Palindromic Subsequences