selenium截图功能
在服务器运行selenium时,用例报错,只看代码和日志,分析起来还是有点难度的。针对这点,selenium还提供了截图功能,保留当前页面,方便后续分析错误。
常用方法介绍如下:
一、保存为png格式
方法1:save_screenshot
方法2:get_screenshot_as_file
这2个方法差不多,代码演示如下,使用driver.get_screenshot_as_file(pic_name)或driver.save_screenshot(pic_name)都可以。
1 import os 2 from selenium import webdriver 3 import time 4 5 6 driver = webdriver.Chrome() 7 driver.maximize_window() 8 driver.get('https://www.baidu.com') 9 pic_name = os.path.dirname(os.path.abspath(__file__)) + "\\img\\" + time.strftime("%Y%m%d%H%M%S", time.localtime()) +".png" # 截图文件名,在当前文件的父目录下面建有文件夹img,用来保存图片。要确保此文件夹存在。 10 driver.get_screenshot_as_file(pic_name) # 截图,格式为png 11 # driver.save_screenshot(pic_name) # 截图,格式为png 12 driver.quit()
二、保存为其他类型格式,比如jpg
方法3:get_screenshot_as_base64
这个方法可以保存为多种图片类型,相对上面会比较麻烦点,代码举例如下
1 import os 2 from selenium import webdriver 3 import base64 4 import time 5 6 7 driver = webdriver.Chrome() 8 driver.maximize_window() 9 driver.get('https://www.baidu.com') 10 pic_name = os.path.dirname(os.path.abspath(__file__)) + "\\img\\" + time.strftime("%Y%m%d%H%M%S", time.localtime()) +".jpg" # 截图文件名 13 scr = driver.get_screenshot_as_base64() # 截图,格式为base64 14 image = base64.b64decode(scr) 15 file_img = open(pic_name, 'wb') 16 file_img.write(image) 17 driver.quit()
参考:https://www.cnblogs.com/hls-code/p/16396744.html