Python Selenium自动化测试:屏幕截图方法详解与代码示例
本文详细介绍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屏幕截图示例的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









