在测试脚本执行过程中,当运行到某些步骤时存在运行失败的可能性。当脚本运行失败时,可以看脚本运行错误信息是常用的方法,如果可以把当前步骤所操作的场景通过图形展现出来(类似黑盒测试中提交Bug同时配图)。
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.Chrome()
driver.get("https://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)方法
使用get_screenshot_as_file(filename)方法也十分简单,通过Driver获取该方法,将截图保存到指定的路径(该路径为绝对路径)下。
仍以Bing搜索页为例,参考代码如下:
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://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(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.Chrome()
driver.get("https://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()