【问题标题】:Capybara: How to set files names and directory for save_and_open_page_pathCapybara:如何为 save_and_open_page_path 设置文件名和目录
【发布时间】:2017-02-16 14:57:51
【问题描述】:

我正在尝试设置将保存所有屏幕截图的目录。因为目前它保存到根文件夹,但我想将文件(.img 和 .html)保存到另一个文件夹。我尝试使用

CapybaraScreenshot.save_and_open_page_path = "../Reports"

CapybaraScreenshot.save_and_open_page('../Reports')

但它仍然将截图和.html文件保存到根目录(((

也可以将屏幕截图名称设置为 TC 名称,因为目前还不清楚哪个屏幕截图与正确的失败 TC 相关。

这是我的 rails_helper.rb 文件:

require 'test/unit'
require 'selenium-webdriver'
require 'capybara'
require 'rspec'
require "rails/all"
require 'capybara/rspec'
require "page-object"
require 'rspec/expectations'
require 'securerandom'
require '../Test_helpers/login_helper'
require 'capybara-screenshot/rspec'
require 'launchy'

RSpec.configure do |config|

  config.include LoginHelper
  config.include RSpec::Matchers
  config.include Capybara::DSL

  Selenium::WebDriver::Chrome.driver_path = '../Resources/chromedriver.exe'
  Capybara.register_driver :selenium do |app|
    Capybara::Selenium::Driver.new(app, browser: :chrome)
  end

  config.after { |example_group| CapybaraScreenshot.save_and_open_page_path = '../Reports' if example_group.exception }

end
Capybara.default_max_wait_time = 15

【问题讨论】:

    标签: ruby rspec automation automated-tests capybara


    【解决方案1】:

    如 capybara-screenshot README - https://github.com/mattheworiordan/capybara-screenshot#custom-screenshot-directoryhttps://github.com/mattheworiordan/capybara-screenshot#custom-screenshot-filename 中所述,您需要为目录设置 Capybara.save_path(只需指定一次,而不是在后块中)并使用 Capybara::Screenshot.register_filename_prefix_formatter覆盖使用的文件名

    【讨论】:

    • @SerhiiKaihorodov 不客气 - 不要忘记接受答案,这样问题就会被标记为已回答
    【解决方案2】:

    我按照以下方式进行操作(感谢@Tom Walpole):

    RSpec.configure do |config|
    
      config.include LoginHelper
      config.include RSpec::Matchers
      config.include Capybara::DSL
    
      Selenium::WebDriver::Chrome.driver_path = '../Resources/chromedriver.exe'
      Capybara.register_driver :selenium do |app|
        Capybara::Selenium::Driver.new(app, browser: :chrome)
      end
    
      Capybara.save_path = "../Reports"
    
      config.after { |example_group| CapybaraScreenshot.save_and_open_page_path if example_group.exception }
    
      Capybara::Screenshot.register_filename_prefix_formatter(:rspec) do |example|
        "screenshot_#{example.description.gsub(' ', '-').gsub(/^.*\/spec\//,'')}"
      end
    
    end
    

    【讨论】:

      猜你喜欢
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-11
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 2022-06-21
      相关资源
      最近更新 更多