簡體   English   中英

水豚截圖格式化

[英]Capybara Screenshot formatted

我的 Capybara 屏幕截圖看起來很傻 - 它沒有應用任何樣式表。

而且,它似乎在錯誤發生后不完全截圖:通過手動生成錯誤,我看到由 gem 打開的不同視圖。

我必須配置什么?

這是我的spec/rails_helper.rb rails-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

寶石檔案:

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 class="no-js" lang="en"><!--<![endif]--><head><base href='http://localhost:3000/' />

所以,似乎 capybara-screenshot 已經檢查了css https://github.com/mattheworiordan/capybara-screenshot#better-looking-html-screenshots

感謝幫助!

您查看 HTML“屏幕截圖”而不是 jpg 屏幕截圖是否有特定原因? HTML 永遠不會完全正確,並且真的應該只用於驗證 HTML 結構,而不是用於當前值/狀態。 這樣做的原因是它保存了HTML和屬性,但不能保存每個元素的JS屬性,所以它不會保存復選框等的當前狀態。另一方面,jpg截圖是一張圖片瀏覽器實際呈現的內容。 至於為什么 HTML 版本不會加載 CSS,請查看文件源並確保<base>元素正確注入頁面的<head>元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM