Capybara屏幕截图格式化

问题描述 投票:0回答:1

我的水豚屏幕截图看起来很傻-它不应用任何样式表。

而且,似乎在发生错误后无法完全截取屏幕截图:通过手动产生错误,我看到了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

感谢您的帮助!

ruby-on-rails selenium-webdriver rspec capybara
1个回答
0
投票

您是出于特定原因查看HTML“屏幕快照”而不是jpg屏幕快照? HTML永远不会完全正确,实际上应该仅用于验证HTML结构,而不用于当前值/状态。这样做的原因是它保存HTML和属性,但不能保存每个元素的JS属性,因此它不会保存复选框的当前状态,等等。jpg屏幕快照是图片。浏览器实际呈现的内容。至于为什么HTML版本不会加载CSS的原因,请查看文件的源,并确保将<base>元素正确注入到页面的<head>元素中。

© www.soinside.com 2019 - 2024. All rights reserved.