selenium---屏幕截图
前言
通常在执行自动化用例的时候,是不会一直在旁边检测,报错的时候想要留下一些证据给开发,可以在代码中进行添加截图操作,通过截图把我们想要的内容截图下来。那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---屏幕截图相关推荐
- Selenium 屏幕截图
在自动化测试程序运行时,有些地方出现了 bug,此时,我们希望可以将当前运行的屏幕的截图保存下来,方便开发者后续进行调试与修复. Selenium 提供的屏幕截屏方法: 序号 方法/属性 描述 1 s ...
- Selenium屏幕截图教程
在自动化测试程序运行时,有些地方出现了 bug,此时,我们希望可以将当前运行的屏幕的截图保存下来,方便开发者后续进行调试与修复. Selenium 提供的屏幕截屏方法: 序号 方法/属性 描述 1 s ...
- Selenium基础篇之屏幕截图方法
文章目录 前言 一.用途 1.捕获页面错误 2.调试测试用例 3.展示测试结果 4.记录页面状态 二.方法 1. save_screenshot 2. get_screenshot_as_file 3 ...
- selenium(java)之屏幕截图操作TakesScreenshot
selenium提供了截图的功能,其接口是TakesScreenshot.该功能是在运行测试用例的过程中,需要验证某个元素的状态或者显示的数值时,可以将屏幕截取下来进行对比:或者在异常或者错误发生的时 ...
- java截全屏,Selenium+Java屏幕截图-网页全屏截图or当前可见内容截图
使用场景 WebUI自动化测试框架中错误截图方法,需要进行全屏幕截取or当前窗口截取 解决方案 导入Ashot的maven依赖,使用Ashot不同的截图策略 ru.yandex.qatools.ash ...
- selenium 常用操作
官方文档: https://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webdriver.WebDriver. ...
- 新手入门必看:使用Selenium进行自动化测试
对于很多刚入门的测试新手来说,大家都将自动化测试作为自己职业发展的一个主要阶段.可是,在成为一名合格的自动化测试工程师之前,我们不仅要掌握相应的理论知识,还要进行大量的实践,积累足够的经验,以便快速适 ...
- python截取html图片大小,Python打开html文件,截取屏幕截图,裁剪并保存为图像
我使用Bokeh软件包生成地图以显示模拟结果.输出是具有交互性的html格式的单独地图.交互性是个别地图所必需的.Python打开html文件,截取屏幕截图,裁剪并保存为图像 请参阅此链接的示例: 仿 ...
- Screenshot of a full element in Selenium C#
我需要使用chromedriver对Selenium C#中的整个元素进行截图. 元素是表格,尽管我正在获取元素的宽度和高度,但我得到的屏幕截图只有15行. IWebElement element = ...
- 【Selenium-WebDriver自学】Selenium测试设计技术(十三)
Selenium页面对象模型 1.Selenium页面对象模型 优点 页面的对象模型是其中测试对象和功能被彼此分开,从而保持代码干净的实现. 对象保持独立的测试脚本.一个目的可以通过一个或多个测试脚本 ...
最新文章
- 别再嘴炮概念了!大数据是硬汉之战,你的肌肉呢?
- python3.6 - threading 多线程编程进阶,线程间并发控制(2)
- 【转】php和java之间rsa加密互通
- html5_0_文章_分级_分段
- js函数中参数的传递
- Android中的消息机制
- 系统管理员在企业中的职业定位及发展方向 连载(一)
- [蓝桥杯2016决赛]愤怒小鸟-模拟
- python网络-计算机网络基础(23)
- 微型计算机天逸510s光驱,主机届的小钢炮,性能最强NAS——天逸510S Mini
- 设置mysql允许外网访问
- BZOJ 2431 DP
- 北约CCDCOE:国家网络空间安全框架
- 华为emui3.1 android,华为EMUI3.1
- VCPKG安装和使用教程
- 阿里云域名备案与服务器tomcat非80端口绑定
- EPUB、CAJ 、PDF 格式的区别,有什么好用的安卓epub阅读器
- 青少年软件编程C++二级题库(11-20)
- 冬瓜哥详解存储OS变迁
- 从bam中截取指定位置的 reads 或深度
热门文章
- JDK安装教程(有图详解)
- 安卓微信分身版 一部手机同时登录多个微信号 原理
- CSDN新编辑器-Powered by 金山文档(金山编辑器)
- Python与有趣的数学1
- [计算机网络]无线路由器设置信道提高网速
- ajax_contenttype,$.ajax中contentType: “application/json” 的用法详解
- 【李宏毅机器学习笔记】 17、迁移学习(Transfer Learning)
- 10-ADC和触摸屏
- Linux内核---31.按键驱动分析(未完成)
- Win11的两个实用技巧系列之蓝牙无法连接、错误代码0x80070483怎么办?