Python Selenium自动化测试截图与保存完整指南

沈知远
沈知远
发布时间:2026-10-13 | 2人浏览过
原创

本文详解Python Selenium自动化测试中的截图功能,重点介绍save_screenshot方法的使用。通过完整代码示例展示如何按日期和时间自动命名保存截图,解决长页面截图难题,并演示结合断言判断测试结果的实用技巧,帮助测试人员高效定位错误并记录测试步骤。

本文主要讲解如何利用Selenium库进行网页截图,并在测试过程中保存截取的图片。在自动化测试环节,截图是一项关键操作,尤其在测试出错时,截图能提供直观的错误现场证据。在Python版本的Selenium中,虽然存在多种截图方式,但本文重点介绍其中最常用的一种实现方法。

掌握截图技能对于测试人员而言至关重要。

在自动化测试流程中,截图功能有助于直观地定位程序错误,并完整记录测试执行的每一个步骤。

回忆此前参与某跨国银行的自动化测试项目时,该银行的项目经理明确要求:自动化测试的每一步操作至少需要生成一张截图。这一要求旨在证明每个功能点均已被自动化测试覆盖,此时,截图便成为了验证自动化测试有效性的核心依据。

优秀的测试人员往往能生成高质量的截图,这如同资深爱好者擅长创作诗歌一样,是一种需要磨练的专业技能。

Selenium WebDriver提供的截图功能非常强大。过去,截图最大的痛点在于页面过长时只能截取当前可视屏幕,滚动条下方的内容通常无法捕获。如今,WebDriver已解决这一难题,无论页面长度如何,它都能近乎完美地截取整个页面的完整图像。

以下代码演示了如何使用WebDriver执行截图操作:

# -*- coding: utf-8 -*-
from selenium import webdriver
import unittest
import os,sys,time
import HTMLTestReport
#登录
driver =webdriver.Firefox()
current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
current_time1 = time.strftime("%Y-%m-%d", time.localtime(time.time()))
print(current_time )
print(current_time1 )
# 必须打印图片路径HTMLTestRunner才能捕获并且生成路径,\image\**\\**.png 是获取路径的条件,必须这样的目录
#设置存储图片路径,测试结果图片可以按照每天进行区分
#通过if进行断言判断
driver.get("https://baidu.com/")
#新创建路径“.”表示当前整个.py文件的路径所在的位置,“\\”路径分割符,其中的一个是“\”表示转义字符
pic_path = '.\\result\\image\\' + current_time1+'\\' + current_time +'.png'
print(pic_path)
time.sleep(5)
print(driver.title)
#截取当前url页面的图片,并将截取的图片保存在指定的路径下面(pic_path),注:以下两种方法都可以
driver.save_screenshot(pic_path)
driver.save_screenshot('.\\result\\image\\' + current_time1+'\\' + current_time +'.png') 
if u'百度一下,你就知道' == driver.title:
  print ('Assertion test pass.') 
else:
  print ('Assertion test fail.')
 #通过try抛出异常进行断言判断  
driver.get("https://baidu.com/")
driver.save_screenshot(pic_path)
try:
  assert u'百度一下,你就知道' == driver.title
  print ('Assertion test pass.') 
except Exception as e:
  print ('Assertion test fail.', format(e))
time.sleep(5)
driver.quit()

save_screenshot方法实现了核心的截图功能,用户只需传入希望保存截图的文件路径及文件名即可,操作十分便捷。

总结

上述内容介绍了基于Python和Selenium实现截图及保存截取图片的具体方法,希望能对读者有所帮助。如有任何疑问,欢迎留言,小编会及时回复。同时,衷心感谢大家对本站的支持!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表