Python Selenium自动化测试:屏幕截图方法详解与代码示例

南乔
南乔
发布时间:2026-10-14| 5人浏览过
原创

本文详细介绍Python Selenium中获取网页截图的多种方法,包括save_screenshot、get_screenshot_as_base64、get_screenshot_as_file及get_screenshot_as_png。通过完整代码示例演示如何在自动化测试中保存截图、生成Base64编码、按时间命名文件及获取二进制数据,帮助开发者实现高效的测试调试与结果记录。

Selenium屏幕截图功能概述

WebDriver提供了内置功能,允许在测试执行过程中捕获当前屏幕画面并将其保存。

常用截图方法代码示例

以下示例脚本展示了具体的实现方式。

(1)save_screenshot(filename):该方法用于将当前屏幕截图保存为指定文件名的图片。


from selenium import webdriver
from time import sleep,strftime,localtime,time
import os
class TestScreenShot(object):
    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.get("http://www.baidu.com")
    def test_screen(self):
        self.driver.save_screenshot("testbaidu.png") 
    def teardown(self):
        self.driver.quit()
if __name__ == '__main__':
    shot=TestScreenShot()
    shot.test_screen()

(2)get_screenshot_as_base64():此方法返回当前屏幕截图的Base64编码字符串,便于在无需保存文件的情况下传输或嵌入数据。


from selenium import webdriver
from time import sleep,strftime,localtime,time
import os 
class TestScreenShot(object):
    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.get("http://www.baidu.com")
    def test_screen(self):
        self.driver.save_screenshot("testbaidu.png")
        print(self.driver.get_screenshot_as_base64()) 
    def teardown(self):
        self.driver.quit()
if __name__ == '__main__':
    shot=TestScreenShot()
    shot.test_screen()

运行结果如下所示。

(3)get_screenshot_as_file(filename):该方法获取当前屏幕截图,并允许通过完整文件路径指定保存位置。


from selenium import webdriver
from time import sleep,strftime,localtime,time
import os 
class TestScreenShot(object):
    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.get("http://www.baidu.com")
    def test_screen(self):
        self.driver.get_screenshot_as_file("testbaidu2.png") 
    def teardown(self):
        self.driver.quit()
if __name__ == '__main__':
    shot=TestScreenShot()
    shot.test_screen()

(4)get_screenshot_as_file(filename):同样获取当前屏幕截图并使用完整路径,此处示例中文件名采用时间戳命名,便于区分不同测试轮次。


from selenium import webdriver
from time import sleep,strftime,localtime,time
import os
class TestScreenShot(object):
    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.get("http://www.baidu.com")
    def test_screen(self):
        # print(self.driver.get_screenshot_as_png())
        # self.driver.get_screenshot_as_file("testbaidu2.png")
        # self.driver.save_screenshot("testbaidu.png")
        # print(self.driver.get_screenshot_as_base64())
        self.driver.find_element_by_id("kw").send_keys("selenium test")
        self.driver.find_element_by_id("su").click()
        str = strftime("%Y-%m-%d-%H-%M-%S",localtime(time()))
        filename = str + ".png"
        path =os.path.abspath("screenshots")
        filepath=path + '/'+filename
        self.driver.get_screenshot_as_file(filepath)
        print(filepath) 
    def teardown(self):
        self.driver.quit()
if __name__ == '__main__':
    shot=TestScreenShot()
    shot.test_screen()

(5)get_screenshot_as_png():该方法直接返回当前屏幕截图的二进制PNG数据,适用于需要处理图像数据的场景。


from selenium import webdriver
from time import sleep,strftime,localtime,time
import os 
class TestScreenShot(object):
    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.get("http://www.baidu.com")
    def test_screen(self):
        print(self.driver.get_screenshot_as_png()) 
    def teardown(self):
        self.driver.quit()
if __name__ == '__main__':
    shot=TestScreenShot()
    shot.test_screen()

运行结果如下所示。

以上即为Python自动化测试中Selenium屏幕截图功能的详细内容,更多关于Selenium屏幕截图示例的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。