【问题标题】:Catching and printing the Warning message on Python > Selenium Webdriver在 Python > Selenium Webdriver 上捕获并打印警告消息
【发布时间】:2015-08-18 21:18:54
【问题描述】:

我正在尝试捕获警告消息,打印警告消息,然后以通过状态退出测试用例。在测试用例中,我有以下代码:

testcase.py:

try:
    warnings.filterwarnings('error')
    activeConfig(driver, url, None, None, True).confirmConfigSet()
except Warning as e:
    print e.message
    return

由于我能够毫无问题地捕捉到警告,因此我只会显示实际捕捉到的警告:

code-where-warning-is-caught.py:
    .
    .
    .
    except (Exception, NoSuchElementException, TimeoutException):
        global_vars.attemptedToEnableDatabase = True
        warnings.warn("\nWARNING : DATABASE PACKAGES HAVE NOT BEEN INSTALLED SO THE DATABASE CANNOT BE ENABLED.", UserWarning)
        return

我可以很好地捕捉到警告,但我不断收到以下错误:

E           DeprecationWarning: BaseException.message has been deprecated as of
Python 2.6

如果我删除测试用例代码的“e”部分,使其看起来像...

try:
    warnings.filterwarnings('error')
    activeConfig(driver, url, None, None, True).confirmConfigSet()
except Warning:
    return

...测试用例完全按照我想要的方式运行,除了它不打印警告消息。如何捕获异常、打印警告消息并以通过状态退出测试用例?我也愿意接受更有经验的编码人员可能提出的任何改进想法。

【问题讨论】:

  • 您尝试过 sys.exc_info() 吗?它返回三个项目的三元组,第一个和第二个元素可能是你想要的。
  • 感谢@Anand S Kumar。我玩了一下,并能够使用“sys.exc_info()[1]”获得我想要的消息。

标签: python selenium selenium-webdriver webdriver


【解决方案1】:

请在此处阅读。他们已经解释了一切,您可以尝试一下。

https://docs.python.org/2/library/traceback.html

在我最近的项目中,我设法通过这样做将关键消息写入文本文件,

logging.basicConfig(level=logging.CRITICAL,
                    format = '%(asctime)s %(name)-12s %(levelname)-8s %(message)s', 
                    datefmt = '%m-%d %H:%M',
                    filename = self.testResultRecord,
                    filemode = 'w')

以下几行是我个人的格式化配置,与日志级别无关。

format = '%(asctime)s %(name)-12s %(levelname)-8s %(message)s', 
datefmt = '%m-%d %H:%M',

问候

【讨论】:

  • 感谢@Yu Zhang 的回复。看起来这个回溯可能会起作用,但我从来不知道如何将信息限制在警告消息中。
  • @rwbyrd,哈哈,这不是问题。看看这个,docs.python.org/2/library/logging.html#levels。基本上,您可以配置要查看的消息级别。我编辑了我的原始答案,以便您阅读。
  • @rwbyrd,如果您仍然不确定任何事情,请回复我。 :-)
猜你喜欢
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-17
  • 1970-01-01
相关资源
最近更新 更多