python日志(适用于UI自动化)

python日志(适用于UI自动化),第1张

日志
日志:日记
日志:记录系统运行的信息,了解系统运行的情况。日志能够把我们的系统上所 *** 作的都记录下来。记录,txt文件,log文件。
好处:复现问题

日志作用:用于调试代码, 反应系统情况。。。

日志代码:

  1. logger:日志器:作用就是别的文件或者说本文件想要用日志的功能,通过日志器去使用
  2. Handler:处理器:作用指定日志信息出现在哪儿 StreamHandler 文本:fileHandler
  3. Formatter:格式器:是设置日志信息格式的

日志级别:
(常用)
INFO:代表正常
ERROR:错误的
(还有)
WARUNING:警告的;程序有问题,但是不影响程序正常运行
DEBUG:调试级别
CRTICAL:严重的(崩溃)

实际 *** 作
1、新建一个base_page的py文件

def test_log():
    # 1、创建日志器
    logger = logging.getLogger()
    # 默认级别是warning  显示出来, 设置日志级别,默认的warning,显示在控制台。根本不知道显示在哪儿
    logger.setLevel(logging.INFO)

    # 要告诉logger显示在哪儿  控制台:StreamHandler
    # 文本:fileHandler

    # 显示在控制台
    sh = logging.StreamHandler()
    # 日志信息显示在控制台
    logger.addHandler(sh)
    # 我没有格式 设置格式
    formater = logging.Formatter('%(asctime)s %(filename)s %(levelname)s %(funcName)s %(message)s')
    # 格式要给控制台
    sh.setFormatter(formater)

    # 设置日志信息显示在文本 file hanlder
    fh = logging.FileHandler('./demolog0502/logs/log1.log')
    logger.addHandler(fh)
    fh.setFormatter(formater)
    return logger

    # 日志信息 写死  在项目中,一般只会调用到info和error
    logger.debug('这是debug日志信息')
    logger.info('这是info日志信息')
    logger.warning('这是warning日志信息')
    logger.error('这是error日志信息')
    logger.critical('这是critical日志信息')

# 以上日志的主体架构已经出来了,现在要用于项目
# 如何在项目中使用,项目中有许多文件,都要用到日志,使用到封装方法

# 封装之后,将日志导入到基类里面

2、导入到基类里

# coding:utf-8
'''
    BasePage类时POM中的基类,主要用于提供常用的函数,为页面对象类进行服务
    selenium常用函数:元素定位、输入、点击、访问URL、等待、关闭等
'''
from time import sleep
# 导入日志
from demolog0502.base.myLogs import test_log

from selenium import webdriver
from selenium.webdriver.remote import switch_to

log = test_log()


class BasePage:
    # 虚构driver对象
    # driver = webdriver.Chrome()

    # 构造函数
    def __init__(self, driver):
        log.info('初始化{}浏览器'.format(driver))
        self.driver = driver

    # 访问URL
    def visit(self, ):
        log.info('正在访问{}网址'.format(self.url))
        self.driver.get(self.url)

    # 元素定位,设计成元组
    def locator(self, loc):
        return self.driver.find_element(*loc)

    # 输入
    def input_(self, loc, txt):
        try:
            log.info('正在定位{},输入{}'.format(loc, txt))
            self.locator(loc).send_keys(txt)
        # 捕获错误日志
        except Exception as e:  # 把错误日志保存到e里面
            log.error('输入内容失败%s' % e)

    # 点击
    def click(self, loc):
        try:
            log.info('正在定位{},进行点击'.format(loc))
            self.locator(loc).click()
        # 捕获错误日志
        except Exception as e:  # 把错误日志保存到e里面
            log.error('点击失败%s' % e)

    # 等待
    def wait(self, time_):
        log.info('正在等待元素')
        sleep(time_)

    # 获得当前页面句柄
    def get_handles(self):
        handles = self.driver.window_handles
        return handles

    # 切换窗口
    def change_handle(self, handle):
        handles = self.driver.window_handles
        for i in handles:
            if i != handle:
                self.driver.switch_to_window(i)

    # 将当前句柄定位到新打开的页面
    def switchToHandle(self, handle):
        self.driver.switch_to.window(handle)

# 日志:确定是正确的,所以调用info

# 日志:错误日志,日志的初衷是,错误日志捕获到 try excepet

3、效果如下所示

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/870606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存