Python使用sys.excepthook统一处理异常,并将异常信息记录到日志中
import sys import time import traceback from datetime import datetime from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from logs import logger class Data: def __init__(self): self.driver = webdriver.Firefox() logger.info('__init__') sys.excepthook = self.HandleException def __Sendkeys__(self, Xpath, keys): WebDriverWait(self.driver, 2).until(EC.presence_of_element_located((By.XPATH, Xpath))) # 显示等待 self.driver.find_element_by_xpath(Xpath).send_keys(keys) def __Click__(self, Xpath): WebDriverWait(self.driver, 2).until(EC.presence_of_element_located((By.XPATH, Xpath))) # 显示等待 self.driver.find_element_by_xpath(Xpath).click() def Run(self): self.driver.get("http://localhost:8080/login/") time.sleep(0.5) # 强制等待看页面显示结果 self.__Sendkeys__("//input[@id='user']", "username") self.__Sendkeys__("//input[@id='psw']", "password") self.__Click__("//*[@id='btn']") logger.info('操作成功') time.sleep(0.5) self.driver.quit() def HandleException(self, excType, excValue, tb): currentTime = datetime.now() # 时间戳 logger.info('Timestamp: %s' % (currentTime.strftime("%Y-%m-%d %H:%M:%S"))) ErrorMessage = traceback.format_exception(excType, excValue, tb) # 异常信息 logger.error('ErrorMessage: %s' % ErrorMessage) # 将异常信息记录到日志中 logger.error('sys.excepthook: %s' % sys.excepthook) logger.error('excType: %s' % excType) logger.error('excValue: %s' % str(excValue)) logger.error('tb: %s' % tb) if __name__ == "__main__": dt = Data() dt.Run()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2018-11-24 Android性能优化之图片压缩优化
2018-11-24 Android应用开发中三种常见的图片压缩方法
2018-11-24 Android组件化和插件化开发