文章目录
- 前言
- 一、用途
- 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也可以保存成功,且控制台无警告。