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….
精讲视频
如果你觉的文章读的不过瘾,可以查看详细的视频教程。
- 【2021】UI自动化测试:Selenium3自动化测试
地址:https://ke.qq.com/course/3172187?tuin=9c43f38e - 《全栈测试系列视频》课程
地址:https://ke.qq.com/course/2525707?tuin=9c43f38e
测试学习路线如下
热销图书
图书京东、当当有售
京东图书地址
当当图书地址
同步视频知识与系列知识内容,欢迎可关注:【公众号】:柒哥测试;或【WX】:Lee-890交流