在自动化测试程序运行时,有些地方出现了 bug
,此时,我们希望可以将当前运行的屏幕的截图保存下来,方便开发者后续进行调试与修复。
Selenium 提供的屏幕截屏方法:
序号 | 方法/属性 | 描述 |
---|---|---|
1 | save_screenshot(filename) | 截取当前屏幕截图,并保存为指定文件,filename 为指定的保存路径或图片文件名 |
2 | get_screenshot_as_base64() | 获取当前屏幕截图 base64 编码字符串 |
3 | get_screenshot_as_file(filename) | 获取当前截图,使用完整的路径 |
4 | get_screenshot_as_png() | 获取当前截图的二进制文件数据 |
实例操作
# 应用1:save_screenshot 直接保存在当前路径
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome() # 打开浏览器
driver.get("https://www.baidu.com/") # 跳转至测试页面
sleep(1)
element = driver.find_element_by_id("kw") # 定位输入框
element.send_keys("自动化测试") # 输入内容
sleep(1)
driver.save_screenshot("baidu.png") # 截屏
sleep(2)
driver.quit() # 关闭浏览器
# 应用1:save_screenshot 使用当前时间作为文件名
from selenium import webdriver
from time import sleep, strftime, localtime, time
driver = webdriver.Chrome() # 打开浏览器
driver.get("https://www.baidu.com/") # 跳转至测试页面
sleep(1)
element = driver.find_element_by_id("kw") # 定位输入框
element.send_keys("自动化测试") # 输入内容
sleep(1)
file_name = strftime("%Y%m%d-%H%M%S", localtime(time())) + ".png"
driver.save_screenshot(file_name) # 截屏
sleep(2)
driver.quit() # 关闭浏览器