selenium的错误截图(get_screenshot_as_file)加实例

一、语法

driver.get_screenshot_as_file("截图存放位置+截图名称")

例:driver.get_screenshot_as_file(“F:\error.png”) 存放F盘下名称为eeror的png格式图片

#引入模块
from selenium import webdriver
#打开火狐浏览器百度搜索“selenium教程”
driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
driver.find_element_by_id('kw').send_keys('selenium教程')
driver.find_element_by_id('su').click()
#异常捕获屏幕截图
try:
    driver.find_element_by_id('su1').click()
except :
    driver.get_screenshot_as_file('F:\error.png')
    print('获取元素失败,截图成功')
finally:
    print('截图保存成功')

在这里插入图片描述

二、实例(创建时间文件夹存放截图)

  1. 创建命名为dateUtil的py格式文件
    获取到当前系统时间

    #引入模块
    import time
    from datetime import datetime
    
    def currentDate():
        # 获取当前系统年月日期
        date = time.localtime()
        today = str(date.tm_year) + "-" + str(date.tm_mon) + "-" + str(date.tm_mday)
        return today
        
    def currentHours():
        #获取当前系统时分秒时间
        timeStr = datetime.now()
        now = timeStr.strftime('%H-%M-%S')
        return now
        
    #打印时间验证是否正确获取到时间(可以删除)
    if __name__ == "__main__":
        print(currentDate())
        print(currentHours())
    

在这里插入图片描述

  1. 创建命名为fileUtil的py格式的文件
    用获取到的当前日期创建文件夹以便用来存放截图

    #引入模块
    from dateUtil import  currentDate,currentHours
    import os
    
    def createDir():
        # 获得当前文件所在目录绝对路径
        currentPath = os.path.dirname(os.path.abspath(__file__))
        # 获取当前系统年月日期
        today = currentDate()
        # 获取以当前系统时间命名目录的绝对路径(os.path.join路径拼接)
        dateDir = os.path.join(currentPath, today)
        print(dateDir)
        
        #判断当前日期的目录文件夹是否存在(os.path.exists(path)如果path存在,返回True;如果path不存在,返回False)
        if not os.path.exists(dateDir):
            # 如果当前日期命名的目录不存在则创建(os.mkdir() 方法用于以数字权限模式创建目录,path -- 要创建的目录mode -- 要为目录设置的权限数字模式)
            os.mkdir(dateDir)
        # 获取当前系统时分秒时间并赋值给now
        now = currentHours()
        # 获取以当前系统时分秒时间命名的目录的绝对路径
        timeDir = os.path.join(dateDir, now)
        print(timeDir)
        
        # 判断当前时分秒的目录文件夹是否存在
        if not os.path.exists(timeDir):
            # 如果当前时间命名的目录不存在则创建
            os.mkdir(timeDir)
        return timeDir
        
    #执行createDir方法
    if __name__ == '__main__':
        createDir()
    

在这里插入图片描述
3. 调用方法进行错误截图

	#引入模块
	from selenium import webdriver
	import unittest, time, os, sys
	import traceback
	from dateUtil import  currentHours
	from fileUtil import createDir
	
	#打开火狐浏览器百度搜索“selenium教程”
	driver = webdriver.Firefox()
	driver.get("https://www.baidu.com/")
	driver.find_element_by_id('kw').send_keys('selenium教程')
	driver.find_element_by_id('su').click()
	
	#错误截图方法赋值
	picDir = createDir()
	#错误截图存放在创建的时间文件中
	def screenCapture(driver, savePath, picName):
	    picPath = os.path.join(savePath, picName + ".png")
	    try:
	        driver.get_screenshot_as_file(picPath)
	    except Exception as e:
	        # 打印异常堆栈信息
	        print('异常信息:', traceback.print_exc())
 	#判断是否获取到元素,如未获取到元素进行错误截图
	try:
	    driver.find_element_by_id('su1').click()
	except :
		#异常时屏幕捕捉截图
	    class screenCapture(unittest.TestCase):
	        screenCapture(driver, picDir, currentHours() + sys._getframe().f_code.co_name)
	        print('获取元素失败,截图成功')
	finally:
	    print('截图保存成功')
	
	#方法调用
	if __name__ == '__main__':
	    unittest.main()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值