前言

  通常在执行自动化用例的时候,是不会一直在旁边检测,报错的时候想要留下一些证据给开发,可以在代码中进行添加截图操作,通过截图把我们想要的内容截图下来。那selenium中如何操作呢?

截图

selenium截图方法有很多种,安静简单的列举几种:

方法一:

获取当前屏幕截图: get_screenshot_as_file(filename) ,filename为图片名称,需要填写完整路径。

这里需要注意图片后缀只能是png,如果是jpg或者其他格式的话,会报错,但是程序还是回正常执行。

报错内容:  UserWarning: name used for saved screenshot does not match file type. It should end with a `.png` extension "type. It should end with a `.png` extension", UserWarning)

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/qican/')
time.sleep(2)
# 截图保存在本地
driver.get_screenshot_as_file('123.png')

方法二:

获取当前屏幕截图,保存格式为base64:  get_screenshot_as_base64()  ,base64保存的图片多数用来放入html报告中。

这里需要导入base64模块,使用base64模块展示图片

from selenium import webdriver
import time
import base64
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/qican/')
time.sleep(2)
# 通过base64进行保存图片
x = driver.get_screenshot_as_base64()
image = base64.b64decode(x)
file = open('1.jpg',"wb")
file.write(image)

方法三:

获取当前窗口屏幕截图的截图。  save_screenshot(filename)  ,filename:表示图片名称。

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/qican/')
time.sleep(2)
# 截图保存在本地
driver.save_screenshot('123.png')

方法四:

以二进制的方式进行获取当前屏幕截图: get_screenshot_as_png()

这里在通过打开二进制图片的方法进行保存在本地

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/qican/')
time.sleep(2)
# 通过二进制的方法进行保存图片到本地
x = driver.get_screenshot_as_png()
file = open('12.png',"wb")
file.write(x)

这里安静就不把截图成功结果发出来了,大家可以手动试试

异常捕捉

通常错误截图大多数用在用例执行失败的时候,安静通过百度输入框填写错误的元素进行定位,然后通过异常捕捉进行截取图片内容。

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
try:# 定位元素错误driver.find_element_by_id('anjing').send_keys('测试-安静')
except Exception as msg:# 时间戳名称,防止覆盖name = time.strftime("%H.%M.%S")# 异常截图保存在本地driver.get_screenshot_as_file('%s.png'%name)

这里我们可以查看发现图片已经截取下来了,安静这里没有打印错误信息。

安静通过小小的例子介绍了web自动化中的截图功能,小伙伴们可以自己动手写一写。孰能生巧。

selenium---屏幕截图相关推荐

  1. Selenium 屏幕截图

    在自动化测试程序运行时,有些地方出现了 bug,此时,我们希望可以将当前运行的屏幕的截图保存下来,方便开发者后续进行调试与修复. Selenium 提供的屏幕截屏方法: 序号 方法/属性 描述 1 s ...

  2. Selenium屏幕截图教程

    在自动化测试程序运行时,有些地方出现了 bug,此时,我们希望可以将当前运行的屏幕的截图保存下来,方便开发者后续进行调试与修复. Selenium 提供的屏幕截屏方法: 序号 方法/属性 描述 1 s ...

  3. Selenium基础篇之屏幕截图方法

    文章目录 前言 一.用途 1.捕获页面错误 2.调试测试用例 3.展示测试结果 4.记录页面状态 二.方法 1. save_screenshot 2. get_screenshot_as_file 3 ...

  4. selenium(java)之屏幕截图操作TakesScreenshot

    selenium提供了截图的功能,其接口是TakesScreenshot.该功能是在运行测试用例的过程中,需要验证某个元素的状态或者显示的数值时,可以将屏幕截取下来进行对比:或者在异常或者错误发生的时 ...

  5. java截全屏,Selenium+Java屏幕截图-网页全屏截图or当前可见内容截图

    使用场景 WebUI自动化测试框架中错误截图方法,需要进行全屏幕截取or当前窗口截取 解决方案 导入Ashot的maven依赖,使用Ashot不同的截图策略 ru.yandex.qatools.ash ...

  6. selenium 常用操作

    官方文档: https://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webdriver.WebDriver. ...

  7. 新手入门必看:使用Selenium进行自动化测试

    对于很多刚入门的测试新手来说,大家都将自动化测试作为自己职业发展的一个主要阶段.可是,在成为一名合格的自动化测试工程师之前,我们不仅要掌握相应的理论知识,还要进行大量的实践,积累足够的经验,以便快速适 ...

  8. python截取html图片大小,Python打开html文件,截取屏幕截图,裁剪并保存为图像

    我使用Bokeh软件包生成地图以显示模拟结果.输出是具有交互性的html格式的单独地图.交互性是个别地图所必需的.Python打开html文件,截取屏幕截图,裁剪并保存为图像 请参阅此链接的示例: 仿 ...

  9. Screenshot of a full element in Selenium C#

    我需要使用chromedriver对Selenium C#中的整个元素进行截图. 元素是表格,尽管我正在获取元素的宽度和高度,但我得到的屏幕截图只有15行. IWebElement element = ...

  10. 【Selenium-WebDriver自学】Selenium测试设计技术(十三)

    Selenium页面对象模型 1.Selenium页面对象模型 优点 页面的对象模型是其中测试对象和功能被彼此分开,从而保持代码干净的实现. 对象保持独立的测试脚本.一个目的可以通过一个或多个测试脚本 ...

最新文章

  1. 别再嘴炮概念了!大数据是硬汉之战,你的肌肉呢?
  2. python3.6 - threading 多线程编程进阶,线程间并发控制(2)
  3. 【转】php和java之间rsa加密互通
  4. html5_0_文章_分级_分段
  5. js函数中参数的传递
  6. Android中的消息机制
  7. 系统管理员在企业中的职业定位及发展方向 连载(一)
  8. [蓝桥杯2016决赛]愤怒小鸟-模拟
  9. python网络-计算机网络基础(23)
  10. 微型计算机天逸510s光驱,主机届的小钢炮,性能最强NAS——天逸510S Mini
  11. 设置mysql允许外网访问
  12. BZOJ 2431 DP
  13. 北约CCDCOE:国家网络空间安全框架
  14. 华为emui3.1 android,华为EMUI3.1
  15. VCPKG安装和使用教程
  16. 阿里云域名备案与服务器tomcat非80端口绑定
  17. EPUB、CAJ 、PDF 格式的区别,有什么好用的安卓epub阅读器
  18. 青少年软件编程C++二级题库(11-20)
  19. 冬瓜哥详解存储OS变迁
  20. 从bam中截取指定位置的 reads 或深度

热门文章

  1. JDK安装教程(有图详解)
  2. 安卓微信分身版 一部手机同时登录多个微信号 原理
  3. CSDN新编辑器-Powered by 金山文档(金山编辑器)
  4. Python与有趣的数学1
  5. [计算机网络]无线路由器设置信道提高网速
  6. ajax_contenttype,$.ajax中contentType: “application/json” 的用法详解
  7. 【李宏毅机器学习笔记】 17、迁移学习(Transfer Learning)
  8. 10-ADC和触摸屏
  9. Linux内核---31.按键驱动分析(未完成)
  10. Win11的两个实用技巧系列之蓝牙无法连接、错误代码0x80070483怎么办?