我的水豚屏幕截图看起来很傻-它不应用任何样式表。
而且,似乎在发生错误后无法完全截取屏幕截图:通过手动产生错误,我看到了gem打开的不同视图。
我必须配置什么?
这是我的spec/rails_helper.rb
轨道6.1和rails s -p 3000与测试一起运行
require 'spec_helper'
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../config/environment', __dir__)
abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'rspec/rails'
require 'capybara/rspec'
require 'capybara-screenshot/rspec'
#Capybara.server = :puma
Capybara.asset_host = "http://localhost:3000/"
Capybara::Screenshot.after_save_html do |path|
`open #{path}`
end
Capybara::Screenshot.prune_strategy = :keep_last_run
begin
ActiveRecord::Migration.maintain_test_schema!
rescue ActiveRecord::PendingMigrationError => e
puts e.to_s.strip
exit 1
end
RSpec.configure do |config|
config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
config.infer_spec_type_from_file_location!
config.filter_rails_from_backtrace!
end
Gemfile:
group :test do
gem 'capybara', '>= 2.15'
gem 'selenium-webdriver'
gem 'webdrivers'
gem 'capybara-screenshot'
end
group :development, :test do
gem 'rspec-rails', '~> 3.9'
end
感谢您的帮助!
您是出于特定原因查看HTML“屏幕快照”而不是jpg屏幕快照? HTML永远不会完全正确,实际上应该仅用于验证HTML结构,而不用于当前值/状态。这样做的原因是它保存HTML和属性,但不能保存每个元素的JS属性,因此它不会保存复选框的当前状态,等等。jpg屏幕快照是图片。浏览器实际呈现的内容。至于为什么HTML版本不会加载CSS的原因,请查看文件的源,并确保将<base>
元素正确注入到页面的<head>
元素中。