在黄瓜内部拯救Selenium WebDriver异常声明

时间:2013-06-19 23:07:21

标签: ruby exception-handling cucumber selenium-webdriver

我正在使用带有黄瓜的ruby selenium webdriver来运行多个浏览器测试。我有几个步骤可以引发异常,并且不希望在每个步骤周围放置一个开始/救援块。我找到了黄瓜的周围钩子,它应该允许我在一个大块中调用我的所有步骤,并在其周围放置一个开始/救援块。不幸的是,当引发selenium异常时,块永远不会收到异常。无论出于什么原因,我都认为黄瓜有自己的开始/救援块,它在我之前被触发。对于rails,有一个名为@ allow-resue的标签允许异常通过,遗憾的是这对Selenium不起作用。有没有人知道解决方法?

1 个答案:

答案 0 :(得分:0)

周围的钩子没有帮助。完全没有。您只需要查看' around_hook.rb' '执行'方法定义:

def execute(*args, &continue)
  @timer.start
  @block.call(continue)
  Result::Unknown.new # Around hook does not know the result of the inner test steps
rescue Result::Raisable => exception
  exception.with_duration(@timer.duration)
rescue Exception => exception
  failed(exception)
end

因此,如果它不知道内部测试步骤的结果,那么它肯定不会知道其余所述步骤中出现的任何异常。

P.S。我有同样的问题......