Selenium基础篇之屏幕截图方法

news2024/12/23 5:18:46

文章目录

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


前言

大家好,我是空空star,本篇给大家分享一下Selenium基础篇之屏幕截图方法。
本篇使用的selenium版本如下:
Version: 4.8.2
本篇使用的浏览器如下:


一、用途

Selenium截图是一种捕获网页屏幕截图的方式,它可以帮助开发人员在测试网页时捕获问题和错误,以便更好地分析和解决问题。

1.捕获页面错误

当测试Web应用程序时,经常会遇到页面错误。使用Selenium截图可以捕获这些错误,以便开发人员可以查看它们并进行修复。

2.调试测试用例

有时测试用例可能会出错。使用Selenium截图可以帮助开发人员找出出错的原因,以便进行调试和修复。

3.展示测试结果

Selenium截图可以用于展示测试结果,以便团队成员可以查看测试结果和问题。

4.记录页面状态

使用Selenium截图可以记录页面状态,以便在需要时进行比较和分析。

二、方法

1. save_screenshot

该函数接受一个参数,即保存屏幕截图的文件路径和文件名,文件格式通常为PNG。

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.csdn.net/')
driver.save_screenshot('csdn.png')
driver.quit()

假如后缀格式为GIF,图片可以正常生成,但是控制台会有警告。
UserWarning: name used for saved screenshot does not match file type. It should end with a .png extension
warnings.warn(

2. get_screenshot_as_file

个人感觉和save_screenshot没有任何区别,也是接受一个参数,即保存屏幕截图的文件路径和文件名,文件格式通常为PNG。

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.csdn.net/')
driver.get_screenshot_as_file('csdn.png')
driver.quit()

假如后缀格式为GIF,图片可以正常生成,但是控制台会有警告。
UserWarning: name used for saved screenshot does not match file type. It should end with a .png extension
warnings.warn(

方法1已经生成了一个csdn.png,所以方法2的csdn.png会把之前的覆盖掉。

3. get_screenshot_as_png

该方法返回值是一个二进制数据流,可以将其保存为PNG格式的图片文件。

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.csdn.net/')
screenshot = driver.get_screenshot_as_png()
with open('csdn.png', 'wb') as f:
    f.write(screenshot)
driver.quit()

把.png改为.gif也可以保存成功,且控制台无警告。

4. get_screenshot_as_base64

该方法返回的是一个base64编码的字符串,需要使用base64解码器进行解码才能得到原始的图片数据。

import base64
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.csdn.net/')
screenshot = driver.get_screenshot_as_base64()
image = base64.b64decode(screenshot)
with open('csdn.png', 'wb') as f:
    f.write(image)
driver.quit()

把.png改为.gif、.jpg也可以保存成功,且控制台无警告。


总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/744894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA+SpringBoot + Mybatis + Shiro+Bootstrap+Mysql智慧仓库系统

IDEASpringBoot Mybatis ShiroBootstrapMysql智慧仓库系统 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.主页3.货位一览4.入库单5. 库存明细6. 呆滞过期报表7. 转库记录8.入库记录9.出库记录10.出库单11.物料信息12.仓库设置13.用户管理14.操作员管理15.角色管理16.账…

Python实现SMOGN算法解决不平衡数据的回归问题

本文介绍基于Python语言中的smogn包,读取.csv格式的Excel表格文件,实现SMOGN算法,对机器学习、深度学习回归中,训练数据集不平衡的情况加以解决的具体方法。 在不平衡回归问题中,样本数量的不均衡性可能导致模型在预测…

解决Navicat连接Oracle报ORA-28547

《进入Oracle官网》 下载Instant Client Products --------------》Oracle Database download database --------------》Download Oracle Database X Instant Client - C/C Drivers (OCI, OCCI, ODBC) and Utilities Download Now 根据自己的操作系统下载对应的Oracle …

【深入浅出Apache Jackrabbit】第三章 Repository 配置文件

系列文章目录 第一章 初见 Apache Jackrabbit 第二章 Apache Jackrabbit 入门 第三章 Repository 配置文件 第四章 Apache Jackrabbit 文件存储 第五章 Apache Jackrabbit 版本管理 文章目录 系列文章目录一、创建一个 Repository 配置文件二、初始化 Repository Apache Jackr…

基于单片机的智能温控风扇的设计与实现

功能介绍 以STM32单片机作为主控系统; 液晶显示当前温度,风速等级,自动手动模式息; DS18B20检测当前的温度; 按键设置温度上限; 手动模式下: 直接控制风扇档位,可以开启/关闭风扇&a…

DragGAN在Windows11中下载安装

DragGAN是一种颠覆性的新型图像生成和编辑技术,它实现了前所未有的用户对图像创作过程的控制能力。使用DragGAN,用户可以用鼠标拖放的方式在空白画布上概括构思图像,系统会自动生成图像细节。例如,用户可以拖拽画一个矩形作为“汽…

js原生实现楼层效果

html文件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>* {m…

TPU编程竞赛系列|第九届 “互联网+”大学生创新创业大赛产业命题赛道,算能6项命题入选!

近日&#xff0c;第九届中国国际“ 互联a网 ” 大学生创新创业大赛产业命题正式公布&#xff0c;算能提交的六 项企业命题成功入选正式赛题。算能六项赛题主要围绕国产 TPU 芯片的边缘计算系统和 RISC-V 架构处理器来设计&#xff0c;且为参赛选手提供了超强算力开发板等硬件资…

前端vue入门(纯代码)29_路由的params参数

手机里的钞票薄情寡义,身上的赘肉不离不弃&#xff01; 【27.Vue Router--路由的params参数】 params属性起到的作用和query差不多&#xff0c;都是用于传递和接收参数&#xff0c;只不过&#xff0c;它是在src/router/index.js文件中进行配置 // 该文件专门用于创建整个应用…

逆向某安卓游戏native层登录协议的过程记录

前言 主要参考白龙哥的unidbg学习&#xff1a;SO逆向实战十三篇 用到工具&#xff1a; frida(HOOK看参数) unidbg&#xff08;模拟&#xff09; ida&#xff08;静态分析&#xff09; charles&#xff08;抓包&#xff09; 准备 此处省略一大堆获取So文件流程&#xff0c;…

单片机编程要求的C语言水平和技能

如果你想从事单片机工作&#xff0c;你需要具备一定水平的C语言编程技能。以下是一些建议的技能和知识&#xff0c;可以帮助你为单片机编程做好准备&#xff1a; 熟悉C语言基础&#xff1a;掌握C语言的基本语法、数据类型、控制结构和函数等。这是你开始学习单片机编程的基础。…

实操:用Flutter构建一个简单的微信天气预报小程序

​ 微信小程序是一种快速、高效的开发方式&#xff0c;Flutter则是一款强大的跨平台开发框架。结合二者&#xff0c;可以轻松地开发出功能丰富、用户体验良好的微信小程序。 这里将介绍如何使用Flutter开发一个简单的天气预报小程序&#xff0c;并提供相应的代码示例。 1. 准备…

《C语言初阶篇》循环语句还没搞懂?这篇文章带你轻松学会循环语句!

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《快速入门C语言》《C语言初阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言&#x1f4ac; 循环语句的介绍&#x1f4ac; while 语句的介绍&#x1f4ad; while中的break&#x1f4ad;…

numpy 多项式函数回归与插值拟合模型;ARIMA时间序列模型拟合

参考&#xff1a; https://blog.csdn.net/mao_hui_fei/article/details/103821601 1、多项式函数回归拟合 import numpy as np from scipy.optimize import leastsq import pylab as plx np.arange(1, 17, 1) y np.array([4.00, 6.40, 8.00, 8.80, 9.22, 9.50, 9.70, 9.86,…

ELK 企业级日志分析系统----elk的部署

文章目录 一、ELK 简介1.1 ElasticSearch介绍1.2 ELK的组件ElasticSearchKiabanaLogstash可以添加的其它组件 1.3 为什么要使用 ELK1.4 完整日志系统基本特征1.5 ELK 的工作原理&#xff1a; 二、elk环境部署2.1 ELK Elasticsearch 集群部署&#xff08;在Node1、Node2节点上操…

vue3 处理elementPlus的Tree树状结构的选中和编辑数据回显

<!-- 添加角色 请求菜单:props"{ children: children, label: name }" children:后端返回的子集结构的key label&#xff1a;name后端返回的名字&#xff1a;data"menus" menus是后端返回的菜单权限列表--><el-treeref"elTreeRef":dat…

Studio One6免费版音乐人常用的编曲软件

Studio One是Pre sounds公司首次研究开发宿主软件的成果。Studio One在其研发环节就吸取了市面上其他宿主软件的优缺点并且做了专业的调研整改。将其他宿主软件的优点经过改良融合在一起&#xff0c;将不足之处进行舍弃或者优化。 Studio One是一款功能强大的编曲软件&#xff…

clickonce 发布winform 桌面快捷键打不开程序

错误应用程序名称: applaunch.exe&#xff0c;版本: 4.8.9032.0&#xff0c;时间戳: 0x6250a8ba 错误模块名称: KERNELBASE.dll&#xff0c;版本: 10.0.22621.1778&#xff0c;时间戳: 0x63f72683 异常代码: 0xe0434352 错误偏移量: 0x000000000006536c 错误进程 ID: 0x0x3E84 …

arm学习stm32之spi总线数码管倒计时,裸机开发,soc

由于时间没有用时间计时器操作&#xff0c;有些误差&#xff0c;后续有空会翻新计时器版本 main.c #include "spi.h" extern void printf(const char *fmt, ...); void delay_ms(int ms) {int i,j;for(i 0; i < ms;i)for (j 0; j < 1800; j); } int num[10…

pdf怎么进行分割,三个实用的方法!

许多朋友在使用PDF文件时&#xff0c;常常遇到需要拆分文件的问题。那么该如何进行操作呢&#xff1f;实际上&#xff0c;我们通常所说的拆分也可以理解为分割&#xff0c;即将一个PDF文件分成两个或多个部分。现在&#xff0c;我将推荐三款工具&#xff0c;通过记灵在线工具&a…