selenium--记录日志信息
前戏
在我们进行web自动化的时候,我们希望记录下日志信息,方便我们进行定位分析,我们可以使用logging模块来进行记录
实战
先写个配置文件Logger.conf来管理日志的配置
[loggers] keys=root,example01,example02 [logger_root] level=DEBUG handlers=hand01,hand02 [logger_example01] handlers=hand01,hand02 qualname=example01 propagate=0 [logger_example02] handlers=hand01,hand03 qualname=example02 propagate=0 ####################################### [handlers] keys=hand01,hand02,hand03 [handler_hand01] class=StreamHandler level=DEBUG formatter=form01 args=(sys.stderr,) [handler_hand02] class=FileHandler level=DEBUG formatter=form01 args=('d:\\AutoTestLog.log','a') [handler_hand03] class=handlers.RotatingFileHandler level=INFO formatter=form01 args=('d:\\AutoTestLog.log','a',10*1024*1024,5) ##################################################### [formatters] keys=form01,form02 [formatter_form01] format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s detefmt=%Y-%m-%d %H:%M:%S [formatter_form02] format=%(name)-12s: %(levelname)-8s %(message)s detefmt=%Y-%m-%d %H:%M:%S
在写个Log.py文件来管理日志的级别
import logging.config logging.config.fileConfig("Logger.conf") def debug(message): # 打印debug级别的日志方法 logging.debug(message) def warning(message): # 打印warning级别的日志方法 logging.warning(message) def info(message): # 打印info级别的日志方法 logging.info(message)
最后再我们的脚本里写日志信息
from selenium import webdriver import unittest from Log import * class TestSoGouSearch(unittest.TestCase): def setUp(self): self.driver=webdriver.Chrome() def testSoGouSearch(self): info(u'=======搜索=======') url='http://www.sogou.com' self.driver.get(url) info('访问sogou首页') import time time.sleep(3) self.driver.find_element_by_id('query').send_keys('自动化测试') info('在搜索框中输入自动化测试') self.driver.find_element_by_id('stb').click() info('单击搜索按钮') info('=====测试用例执行结束=====') def tearDown(self): self.driver.quit() if __name__=='__main__': unittest.main()
执行SoGou.py文件后,会在本地磁盘D盘中生成一个日志文件AutoTestLog.log
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)