首页 > 解决方案 > 拍摄场景失败截图

问题描述

在我使用 Ruby / Capybara / Cucumber / Selenium 的自动化测试中,当我的测试的某个步骤失败时,必须执行以下步骤:

知道如何帮助我解决这个问题吗?

今天系统截图作为场景成功的证据,但现在我想在不影响我所有测试的执行的情况下截图失败,跟随下一步或场景的执行。

当前用作截屏挂钩的示例代码:

After do | scenario |
  screenshot = "log / screenshots / # {scenario.name} .png"
  page.save_screenshot (screenshot)
  embed (screenshot, 'image / png', 'Screen_Evidence')
end

标签: ruby-on-railsrubyseleniumautomated-testsbdd

解决方案


试试这个方法。

After do |scenario|
if scenario.failed?
    timestamp = "#{Time.zone.now.strftime('%Y-%m-%d-%H:%M:%S')}"
    screenshot_name = "screenshot-#{scenario.name}-#{timestamp}.png"
    screenshot_path = "#{Rails.root.join(provide path to save screenshots)}/#{screenshot_name}"
    Capybara.page.save_screenshot(screenshot_path, full: true)

推荐阅读