Selenium3自动化测试【33】屏幕截图

本文介绍了如何在Selenium测试脚本中利用WebDriver进行截图,包括save_screenshot(), get_screenshot_as_file(), get_screenshot_as_png(), 和 get_screenshot_as_base64() 方法,并强调了图形展示在故障诊断中的价值。
摘要由CSDN通过智能技术生成

测试脚本执行过程中,当运行到某些步骤时,可能存在运行失败的可能性。当脚本运行失败时,观察脚本运行错误是我们常用的方法,如果可以把当前步骤所操作的场景,通过图形展现出来(类似黑盒测试中提交Bug同时配图),就更容易让自动化测试工程师,判别测试脚本执行失败的原因了。
WebDriver提供了截图的方法有:

1. save_screenshot()

save_screenshot()是保存成功一张后缀名为png的图片。save_screenshot()参数是文件名称,截图会保存在当前代码的目录下。
仍以Bing搜索页为例,参考代码如下:

from selenium import webdriver
import time

# 以日期命名截图的名字
picture_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))

driver = webdriver.Firefox()
driver.get("http://cn.bing.com/")
driver.find_element_by_xpath("//input[@name='q']").send_keys("bella")
driver.find_element_by_xpath("//input[@name='go']").click()
time.sleep(1)
driver.save_screenshot(picture_time + '.png')
time.sleep(1)
driver.quit()

2. get_screenshot_as_file(filename)

该方式也十分简单,通过driver获取该方法,将截图保存到指定的路径(该路径为绝对路径)下。
仍以Bing搜索页为例,参考代码如下:
代码执行后,通过get_screenshot_as_file(“d:\bing.png”)将图片保存在D盘下。

from selenium import webdriver
from time import  sleep

driver = webdriver.Firefox()
driver.get("http://cn.bing.com/")

driver.find_element_by_xpath("//input[@name='q']").send_keys("bella")
driver.find_element_by_xpath("//input[@name='go']").click()
sleep(4)
driver.get_screenshot_as_file("d:\\bing.png")
driver.quit()

3. get_screenshot_as_png()

get_screenshot_as_png()是获取当前屏幕截图的二进制文件数据,代码如下:

from selenium import webdriver
import time

driver = webdriver.Firefox()
driver.get("http://cn.bing.com/")

driver.find_element_by_xpath("//input[@name='q']").send_keys("bella")
driver.find_element_by_xpath("//input[@name='go']").click()
time.sleep(1)
screenshot = driver.get_screenshot_as_png()
print(screenshot)
driver.quit()

输出内容如下。

c\xd5Z\x86\xbd\xa5\x05\xe6\xa6\xc6h\x8e\x1aA\xbf_:\xb0|\xf6DN\xeao…..

4. get_screenshot_as_base64()

get_screenshot_as_base64()是获取当前屏幕截图base64编码字符串,便于HTML页面直接嵌入base64编码图片,代码如下:

from selenium import webdriver
import time

driver = webdriver.Firefox()
driver.get("http://cn.bing.com/")

driver.find_element_by_xpath("//input[@name='q']").send_keys("bella")
driver.find_element_by_xpath("//input[@name='go']").click()
time.sleep(1)
screenshot = driver.get_screenshot_as_base64()
print(screenshot)
driver.quit()

截图的base64编码字符串,内容如下。

iVBORw0KGgoAAAANSUhEUgAACgAAAAUwCAYAAACPZgycAAAgAElEQVR4nO….

如果你觉的文章读的不过瘾,可以查看详细的视频教程。

【2021】UI自动化测试:Selenium3自动化测试
https://edu.51cto.com/course/26488.html

【测试全系列视频课程】请点击我哦…
( https://edu.51cto.com/lecturer/968349.html)

学习路线如下

微信图片_20210816100905.png微信图片_202108161009051.png微信图片_202108161009052.png
软件测试技能体系.jpg

图书京东、当当有售
京东: https://item.jd.com/12784287.html
当当: http://product.dangdang.com/29177828.html

0.9733767060093851.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leo_Eagle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值