# python-自动化UI测试之---异常时进行屏幕截图存放至指定的本地目录

encoding = utf-8

import time
from datetime import datetime

def currentDate():
“”"
生成年月日字符串
:return: 年月日
“”"
date = time.localtime()
today = str(date.tm_year) + ‘-’ + str(date.tm_mon) +’-’+str(date.tm_mday)
return today

def currentTime():
“”"
生成当前时间字符串
:return:
“”"
timeStr = datetime.now()
now = timeStr.strftime(’%H-%M-%S’)
return now

import os

def createDir():
“”"
创建目录
:return:
“”"
# 获取当前文件所在目录的绝对路径
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

创建目录

picDir = createDir()

from selenium import webdriver
import unittest
import traceback

def screenShot(dr, savePath):
“”"
截屏并保存
:param dr: 浏览器
:param savePath:存放路径
:param picName: 图片名称
:return: 无
“”"
# 构造截屏路径及文件名
# windows默认编码是GBK,而传入的图片名为utf8编码,所以需要转码
picPath = os.path.join(savePath,‘11.png’)

try:
    # 将截取的屏幕,保存为本地文件
    # 调用dr.get_screenshot_as_file()方法
    dr.get_screenshot_as_file(picPath)
except Exception as e:
    print(traceback.print_exc())

class TestFailCaptureScreen(unittest.TestCase):
“”“测试异常截屏”""
def setUp(self) -> None:
self.dr = webdriver.Chrome()

def tearDown(self) -> None:
    self.dr.quit()

def testSoGouSearch(self):
    url = 'http://www.sogou.com'
    self.dr.get(url)
    try:
        self.dr.find_element_by_id('query').send_keys('我是菜鸟')
        self.dr.find_element_by_id('stb').click()
        time.sleep(3)
        self.assertTrue('我天下第一'
                in self.dr.page_source,'"我天下第一"在页面原码中未找到')

    except AssertionError as e:
        screenShot(self.dr,picDir)
    except Exception as e:
        print(traceback.print_exc())
        screenShot(self.dr,picDir)

if name == ‘main’:
unittest.main()

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值