有没有办法重新抛出Selenium错误信息?

时间:2014-02-06 08:58:41

标签: python selenium

如果我在Python中用“try except”包装一段Selenium Webdriver代码,在except块中使用self.fail('some problem'),我不知道Selenium在那时会说些什么。如果没有try-except,Selenium会给出错误消息,例如关于元素的可见性或陈旧性等.Webdriver程序如何重新抛出Selenium错误报告?

1 个答案:

答案 0 :(得分:2)

有几个选择:

try:
  ...
except SeleniumException as problem:
  raise

try:
  ...
except SeleniumException as problem:
  raise problem

两者都将重新抛出原始异常。第一个将保留原始堆栈(因此您可以看到Selenium本身),后者将处理异常,就好像它不是在Selenium内部而是在raise点。

但通常您在此时有新信息,因此您可能希望在保留原始堆栈跟踪和异常信息的同时添加该信息。为此,有时在重新抛出之前更改捕获的异常;这是我不建议的,因为它不是一个非常通用的方法。我宁愿坚持以下内容:Python 3知道异常链接

try:
  ...
except SeleniumException as problem:
  raise MyNewException("some additional information") from problem

如果您需要更多功能或者您使用的是Python 2,您可以查看我的CausedException课程。如果您需要为新异常提供多个原因(旧例外),也可以使用它。