python 封装selenium 出错后,以时间生成文件夹保存错误图片

python

背景:在selenium出错后都会截图,那截图的时候都是以当天时间存入到当前时间文件夹中,那这个就可以分成3部,进行封装

python;gutter:true;">#encoding=utf-8

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 currentHouse():

timeStr = datetime.now()

# 构造当前时间字符串

now = timeStr.strftime('%H')

return now

def currentTime():

timeStr = datetime.now()

# 构造当前时间字符串

now = timeStr.strftime('%H-%M-%S')

return now

if __name__ == "__main__":

print (currentDate())

print (currentTime())

print(currentHouse())

  

二:使用日期和时间生成文件

from senior.filescreent.DateUtil import currentDate, currentTime

import os

def createDir():

# 获得当前文件所在目录绝对路径

currentPath = os.path.dirname(os.path.abspath(__file__))

# 获取今天的日期字符串

today = currentDate()

# 构造以今天日期命名的目录的绝对路径

dateDir = os.path.join(currentPath, today)

print (dateDir)

if not os.path.exists(dateDir):

# 如果已今天日期命名的目录不存在则创建

os.mkdir(dateDir)

# 获得当前的时间字符串

now = currentTime()

# 构造以当前时间命名的目录的绝对路径

timeDir = os.path.join(dateDir, now)

print (timeDir)

if not os.path.exists(timeDir):

# 如果已当前时间命名的目录不存在则创建

os.mkdir(timeDir)

return timeDir

if __name__=='__main__':

createDir()

  会在项目中生成目录文件,以年月日为第一层目录,在以小时为第二层目录

 三、 selenium的错误后开始截图

#encoding=utf-8

from selenium import webdriver

import unittest, time, os,sys

from senior.filescreent.FileUtil import createDir

import traceback

from senior.filescreent.DateUtil import currentTime

# 创建存放异常截图的目录,并得到本次实例中存放图片目录的绝对路径,

# 并且作为全局变量,以供本次所有测试用例调用

picDir = createDir()

def takeScreenshot(driver, savePath, picName):

# 封装截屏方法

# 构造屏幕截图路径及图片名

picPath = os.path.join(savePath, picName+".png")

try:

# 调用WebDriver提供的get_screenshot_as_file()方法,

# 将截取的屏幕图片保存为本地文件

driver.get_screenshot_as_file(picPath)

except Exception as e:

# 打印异常堆栈信息

print (traceback.print_exc())

class TestFailCaptureScreen(unittest.TestCase):

def setUp(self):

# 启动浏览器

self.driver = webdriver.Chrome(executable_path="D:\\driver\\chromedriver")

def testSearch(self):

url = "http://www.baidu.com"

# 访问首页

self.driver.get(url)

time.sleep(3)

try:

self.driver.find_element_by_id("kw").\

send_keys(u"selenium测试")

self.driver.find_element_by_id("su").click()

time.sleep(3)

# 断言页面的代码中是否存在“事在人为”这4个关键字,

# 因为页面中没有这4个字,所以会触发except语句的执行,并触发截图操作

self.assertTrue(u"事在人为1" in self.driver.page_source, \

"“事在人为”关键字串在页面源代码中未找到")

except AssertionError as e:

print (traceback.print_exc())

# 调用封装好的截图方法,进行截图并保存在本地磁盘

# sys._getframe().f_code.co_name 获取当前运行的方法

takeScreenshot(self.driver, picDir, currentTime()+sys._getframe().f_code.co_name)

except Exception as e:

print (traceback.print_exc())

takeScreenshot(self.driver, picDir, currentTime()+sys._getframe().f_code.co_name)

def tearDown(self):

# 退出浏览器

self.driver.quit()

if __name__ == '__main__':

unittest.main()

   

以时分秒+运行方法名生成了图片内容

以上是 python 封装selenium 出错后,以时间生成文件夹保存错误图片 的全部内容, 来源链接: utcz.com/z/386993.html

回到顶部