trace self. pan down sogou end 以及 pri oca
1. 获取当前的日期及时间,用于生成保存截图文件目录名
2. 创建目录,用于存放异常截图
#!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())
3. 存放异常截图的目录,并得到本次实例中存放图片目录的绝对路径
#!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
测试过程中发生异常或断言失败时进行屏幕截图
# !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()
来源: http://www.bubuko.com/infodetail-2459511.html