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

1. 引言

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


欢迎可关注:【公众号】:柒哥测试;添加【WX】:Lee-890交流;

2. 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….

精讲视频

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

测试学习路线如下

热销图书

图书京东、当当有售
京东图书地址
当当图书地址
0.9733767060093851.png

同步视频知识与系列知识内容,欢迎可关注:【公众号】:柒哥测试;或【WX】:Lee-890交流


posted @ 2022-05-13 10:39  BlaLeo  阅读(143)  评论(0编辑  收藏  举报