一、前言

最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新!

这是python+selenium实现Web自动化第六篇博文

二、Selenium前五篇博文地址:

【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

【Selenium02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!

【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

【Selenium04篇】python+selenium实现Web自动化:文件上传,Cookie操作,调用 JavaScript,窗口截图

【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行

三、Selenium之-日志处理

到这里已经搞了好多,但是在排查问题的时候,不是很方便,我们需要对程序的执行中错误的地方进行记录。

1.在 console 输出log

可以将日志信息输出的console中,但是这种方式不常用。日常更多使用的是2的方法,将日志信息输出到log文件中。

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@Time : 2020/4/17
@Author : 公众号:软测之家 更多技术干货,软测视频,面试资料请关注!
@Contact : 软件测试技术群:695458161
@License : (C)Copyright 2017-2019, Micro-Circle
@Desc : None
""" import logging class RecordLog(object):
def __init__(self):
self.logger = logging.getLogger()
self.logger.setLevel(logging.DEBUG) # 1. 在 console 中输出日志文件
# 能够将日志信息输出到sys.stdout, sys.stderr 或者类文件对象
# 日志信息会输出到指定的stream中,如果stream为空则默认输出到sys.stderr。
console = logging.StreamHandler(stream=None)
# 将sys.stderr中的信息添加到logger中
self.logger.addHandler(console)
# 输出调试信息
self.logger.debug("这是一条在控制台线上的log")
# 关闭流
console.close()
# 移除
self.logger.removeHandler(console) if __name__ == "__main__":
rl = RecordLog()

2.输出日志到log文件

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@Time : 2020/4/17
@Author : 公众号:软测之家 更多技术干货,软测视频,面试资料请关注!
@Contact : 软件测试技术群:695458161
@License : (C)Copyright 2017-2019, Micro-Circle
@Desc : None
""" import logging
import os
from datetime import datetime class RecordLog(object):
def __init__(self):
self.logger = logging.getLogger()
self.logger.setLevel(logging.DEBUG) # 2.将log信息输出到log文件中
# 2.1 先定位看将log文件输出到哪里去
current_dir = os.path.dirname(os.path.abspath(__file__))
print(current_dir) # D:\MySpace\Python\WebTesting\util
log_dir = os.path.join('../logs')
# 日志名称构建
log_file_name = datetime.now().strftime("%Y-%m-%d") + '.log'
log_file_path = log_dir + '/' + log_file_name
print(log_file_path) # 2.2 好的,将日志写进log文件中
self.file_handle = logging.FileHandler(log_file_path, 'a', encoding='utf-8')
formatter = logging.Formatter(
'%(asctime)s %(filename)s %(funcName)s %(levelno)s: [%(levelname)s] ---> %(message)s')
self.file_handle.setFormatter(formatter)
self.logger.addHandler(self.file_handle) def get_log(self):
return self.logger def close_handle(self):
self.logger.removeHandler(self.file_handle)
self.file_handle.close() if __name__ == "__main__":
rl = RecordLog()
log_info = rl.get_log()
log_info.debug('输出到文件中去')
rl.close_handle()

四、持续更新中请关注

如果你对此文有任何疑问,如果你觉得此文对你有帮助,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:

软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

作者:来自公众号:软测之家
出处:https://www.cnblogs.com/csmashang/p/12719079.html
原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

【Selenium06篇】python+selenium实现Web自动化:日志处理的更多相关文章

  1. 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...

  2. 【Selenium07篇】python+selenium实现Web自动化:PO模型,PageObject模式!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第七篇博 ...

  3. 【Selenium02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...

  4. 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...

  5. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  6. 【Selenium04篇】python+selenium实现Web自动化:文件上传,Cookie操作,调用 JavaScript,窗口截图

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第四篇博 ...

  7. 【python+selenium的web自动化】- 元素的常用操作详解(一)

    如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html ​ 本篇主要内容:1.元素 ...

  8. 【python+selenium的web自动化】- PageObject模式解析及案例

    如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html PO模式 ​ Page O ...

  9. 【python+selenium的web自动化】- Selenium WebDriver原理及安装

    简单介绍 selenium ​ selenium是一个用于测试web网页的自动化测试工具,它直接运行在浏览器中,模拟用户的操作.

随机推荐

  1. foobox更新日志

    2020-1-31, 6.1.5.1a 版(*) 跟进汉化版修正.(*) MusicTag升级到 1.0.4.0.(*) 部分图标改良,其他优化和修正.(+) 丰富网络功能,增加一个搜索源,一个榜单源 ...

  2. mac redis搭建集群

    1.下载redis客户端 2.修改redis.conf文件 port 6379 //端口 daemonize yes cluster-enabled yes //打开集群 cluster-config ...

  3. F版本SpringCloud 2—什么是SpringCloud?SpringCloud版本选择

    引言:搭建微服务架构就像是买电脑,使用SpringCloud就是在买品牌机. 前言 昂,美好的天气里,不想直接说技术,给小伙伴萌看看傍晚的天空吧. -- 能找到天上的北极星吗? 上一篇文章中,通过一个 ...

  4. Java单例设计模式的实现

    1. 单例设计模式的定义 单例设计模式确保类只有一个实例对象,类本身负责创建自己的对象并向整个系统提供这个实例.在访问这个对象的时候,访问者可以直接获取到这个唯一对象而不必由访问者进行实例化. 单例设 ...

  5. 【spring springmvc】这里有你想要的SpringMVC的REST风格的四种请求方式

    概述 之前的文章springmvc使用注解声明控制器与请求映射有简单提到过控制器与请求映射,这一次就详细讲解一下SpringMVC的REST风格的四种请求方式及其使用方法. 你能get的知识点 1.什 ...

  6. 网维大师无盘刷新B盘方法

  7. Android菜单(menu)

    Android  菜单 我们继续来进行学习,今天写一下在软件中用的还算较多的菜单. 1.Menu 菜单,很显然,作用就是点击不同的选项触发不同的方法.现在在安卓使用中推荐使用ActionBar,但这里 ...

  8. [AI开发]一个例子说明机器学习和深度学习的关系

    深度学习现在这么火热,大部分人都会有‘那么它与机器学习有什么关系?’这样的疑问,网上比较它们的文章也比较多,如果有机器学习相关经验,或者做过类似数据分析.挖掘之类的人看完那些文章可能很容易理解,无非就 ...

  9. Swagger2 初始用

    1.结合Spring-Boot 引入 pom 依赖  <dependency> <groupId>io.springfox</groupId> <artifa ...

  10. Inception系列理解

    博客:博客园 | CSDN | blog 写在前面 Inception 家族成员:Inception-V1(GoogLeNet).BN-Inception.Inception-V2.Inception ...