Capybara截图在步骤失败时没有拍摄快照...?

时间:2015-12-14 19:08:43

标签: ruby selenium-webdriver capybara site-prism

Capybara屏幕截图在步骤失败时不拍摄快照。我使用下面的代码:

Capybara.save_and_open_page_path = "/file/path"
Capybara::Screenshot.register_filename_prefix_formatter(:rspec) do |example|
 "screenshot_#{example.description.gsub(' ', '-').gsub(/^.*\/spec\//,'')}"
end

我看到它在整个场景结束后会截屏,但不会在步骤失败。当步骤失败时,我想要截图...请帮助

2 个答案:

答案 0 :(得分:0)

您可以使用after挂钩来执行此操作。 https://www.relishapp.com/rspec/rspec-core/v/2-2/docs/hooks/before-and-after-hooks

如上所述,即使示例失败也会执行钩子

答案 1 :(得分:0)

在你的spec_helper中,你可以设置你的钩子来做这样的事情:

RSpec.configure do |config|
  config.after(:each) do |example|
    if example.exception
      file_name = 'failed_%s.png' % rand(1000).to_s # name your screenshot whatever you'd like
      page.save_screenshot(file_name)
    end
  end
end