python +selenium logging 模块封装

来源:互联网 发布:泰国数据漫游资费 编辑:程序博客网 时间:2024/06/11 23:38

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

#封装一个logger类,并返回logger对象用于浏览器操作日志输出import loggingimport osimport timeclass 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 MyLoggerfrom selenium import webdriverimport time#调用MyLoggermylogger = 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)
添加了一些参数,设置了编码格式之后就解决了乱码问题,又找到一个解决问题的方法,查看官方文档 继续学习吧!