1.获取当前的日期及时间,用于生成保存截图文件目录名
#!usr/bin/env python #-*- coding: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 currentTime(): timeStr = datetime.now() #构造当前时间字符串 now = timeStr.strftime(‘%H - %M - %S‘) return now if __name__ == ‘__main__‘: print(currentDate()) print(currentTime())
2.创建目录,用于存放异常截图
#!usr/bin/env python #-*- coding:utf-8 -*- from DateUtil import currentTime,currentDate 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
3.存放异常截图的目录,并得到本次实例中存放图片目录的绝对路径
# !usr/bin/env python # -*- coding:utf-8 -*- #测试过程中发生异常或断言失败时进行屏幕截图 from selenium import webdriver import unittest, time, os from FileUtil import createDir import traceback # 创建存放异常截图的目录,并得到本次实例中存放图片目录的绝对路径,并且作为全局变量,以共本次所有测试用例调用 picDir = createDir() def takeScreenshot(driver, savePath, picName): # 封装截屏方法 # 构造屏幕截图路径及图片名 picPath = os.path.join(savePath + ‘.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.Firefox() def testSoGouSearch(self): url = ‘http://www.sogou.com‘ self.driver.get(url) try: self.driver.find_element_by_id(‘query‘).send_keys(‘光荣之路自动化测试‘) self.driver.find_element_by_id(‘stb‘).click() time.sleep(3) self.assertTrue(‘事在人为‘ in self.driver.page_source, "‘事在人为‘关键字串在页面源代码中未找到") except AssertionError as e: #调用封装好的截图方法,进行截图并保存在本地磁盘 takeScreenshot(self.driver,picDir,e) except Exception as e: print(traceback.print_exc()) takeScreenshot(self.driver,picDir,e) def tearDown(self): self.driver.quit() if __name__ == ‘__main__‘: unittest.mian()