生成以时间命名的目录(以存放异常截图或日志文件)
工具类
截屏工具类及测试示例
工具类:FileUtil.py
本模块主要用于获取当前的日期以及时间,用于生成保存截图文件目录名等场景。
1 import time, os 2 from datetime import datetime 3 4 5 # 输出当前时间格式:年-月-日 6 def currentDate(): 7 date = time.localtime() 8 # 输出:time.struct_time(tm_year=2018, tm_mon=1, tm_mday=21, tm_hour=23, tm_min=27, tm_sec=43, tm_wday=6, tm_yday=21, tm_isdst=0) 9 # 构造今天的日期字符串 10 today = str(date.tm_year) + "-" + str(date.tm_mon) + "-" + str(date.tm_mday) 11 return today 12 13 14 # 输出当前时间格式:时-分-秒 15 def currentTime(): 16 timeStr = datetime.now() 17 now = timeStr.strftime("%H-%M-%S") 18 return now 19 20 21 # 创建目录:年月日为父目录,时分秒为子目录 22 def createDir(): 23 # 获得当前文件所在目录的绝对路径 24 currentPath = os.path.dirname(os.path.abspath(__file__)) 25 today = currentDate() 26 dateDir = os.path.join(currentPath, today) 27 print("日期目录:%s" % dateDir) 28 if not os.path.exists(dateDir): 29 # 如果以今天日期命名的目录不存在则创建 30 os.mkdir(dateDir) 31 now = currentTime() 32 timeDir = os.path.join(dateDir, now) 33 print("时间目录:%s" % timeDir) 34 if not os.path.exists(timeDir): 35 # 如果以今天日期命名的目录不存在则创建 36 os.mkdir(timeDir) 37 38 return timeDir 39 40 41 if __name__ == "__main__": 42 print(createDir())
截屏工具类:ScreenShot.py
封装异常截图。
1 from selenium import webdriver 2 import DateUtil 3 import os 4 import traceback 5 import time 6 7 8 # 封装截屏方法 9 def take_screen_shot(driver, savePath, picName): 10 # 构造截屏路径及图片名 11 picPath = os.path.join(savePath, picName+".png") 12 try: 13 driver.get_screenshot_as_file(picPath) 14 print("截图成功:%s" % picName+".png") 15 except Exception: 16 print("截图失败:%s" % traceback.print_exc()) 17 18 19 # 测试示例 20 if __name__ == "__main__": 21 picDir = DateUtil.createDir() 22 23 def test(): 24 try: 25 # 序号用来作为文件名结尾,防止文件名重复 26 num = 0 27 driver = webdriver.Chrome() 28 driver.get("http://www.baidu.com") 29 assert "hiphop" in driver.page_source 30 except AssertionError as e: 31 num += 1 32 take_screen_shot(driver, picDir, "AssertionError"+str(num)) 33 except Exception as e: 34 num += 1 35 take_screen_shot(driver, picDir, "Exception"+str(num)) 36 37 test()