python +selenium logging 模块封装

在上一篇学习了python模块后,这篇结合selenium来进行使用,还是根据博客http://blog.csdn.net/u011541946/article/details/70198676 来学习,但是自己也在自己独立思考该怎么写,还是有进步的
一、logging模块封装,就上篇文章的创建logger、handler、formatter,返回了一个logger,用于浏览器操作时的日志输出

#封装一个logger类,并返回logger对象用于浏览器操作日志输出
import logging
import os
import time
class MyLogger(object):
    def __init__(self,logger):
        #创建一个logger对象,并为其命名
        self.logger =logging.getLogger(logger)
        #设置日志级别
        self.logger.setLevel(logging.DEBUG)

        #创建handler,创建一个输出到屏幕的handler和一个输出到文件的handler
        #file_path = os.path.dirname(os.getcwd())+r'\logs\logs.txt'  #日志信息存放路径
        file_path = os.path.dirname(os.getcwd()) + r'/logs/'
        #用日期做日志文件名
        tpath = time.strftime('%Y%m%d%H%M',time.localtime(time.time()))+'.log'
        path = file_path + tpath
        streamhandler = logging.StreamHandler()
        streamhandler.setLevel(logging.DEBUG)
        #filerhandler = logging.FileHandler(path)
        filerhandler = logging.FileHandler(path, mode='a', encoding='utf-8', delay=False)
        filerhandler.setLevel(logging.DEBUG)
        #创建formatter对象,设置日志输出格式
        formatter = logging.Formatter(' %(asctime)s %(levelname)s %(name)s %(pathname)s %(message)s',
                                      datefmt='%Y-%m-%d %H:%M:%S')
        streamhandler.setFormatter(formatter)
        self.logger.addHandler(streamhandler)
        self.logger.addHandler(filerhandler)

    def put_logger(self):
        return self.logger

二、浏览器操作日志输出
调用了上个文件的类MyLogger,与方法put_logger(),获得返回的logger对象进行操作

from test.logs_1 import MyLogger
from selenium import webdriver
import time

#调用MyLogger
mylogger = MyLogger(logger='testlogger').put_logger()

class TestLogger(object):
    def print_log(self):
        driver = webdriver.Chrome()
        driver.maximize_window()
        mylogger.info('浏览器最大化')

        driver.get("https://www.baidu.com")
        mylogger.info('打开百度浏览器')
        time.sleep(3)
        mylogger.info("暂停三秒")
        driver.quit()
        mylogger.info('关闭浏览器')
test_logger = TestLogger()
test_logger.print_log()

在这里遇到过一个问题,写入文件的中文日志都是乱码,百度了一下参看了官方文档https://docs.python.org/3.6/library/logging.handlers.html 将filerhandler logging.FileHandler(path, mode='a', encoding='utf-8', delay=False)
添加了一些参数,设置了编码格式之后就解决了乱码问题,又找到一个解决问题的方法,查看官方文档 继续学习吧!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值