使用RSpec和Capybara检查图像和图标的存在

时间:2013-03-23 04:23:02

标签: ruby-on-rails rspec capybara

有没有一种方法可以检查使用rspec和水豚的图像和图片的存在?

我可以查看favicon和图像的DOM,但我希望能够检查这些图像是否也加载。这对rspec和capybara有可能吗?

4 个答案:

答案 0 :(得分:6)

describe "check images and favicon" do
  before { visit "url/to/check")

  it "should have the images" do
    page.should have_css('img', text: "image1.jpg")

  it "should have the favicon" do
    page.should have_xpath("/html/head/link[@href='favicon.ico']"
  end 
end

答案 1 :(得分:4)

答案 2 :(得分:3)

问题是要确定是否存在实际的img和favicon。以下是检查滑块的所有图像是否存在的代码。

page.all('#carousel img').each do |img|
  visit img[:src]
  page.status_code.should be 200
end

对于具有id myimage的个人图像,请使用

visit page.find('img#myimage')[:src]
page.status_code.should be 200

最简单的方法是运行以下

page.all('link[rel~="icon"]', visible: :any).each do |fav|
  visit fav[:href]
  page.status_code.should be 200
end

答案 3 :(得分:0)

要测试页面上所有损坏的图像

  • 特定图片
  • 选择器的存在,或
  • 管道中的图像可用性

我收集所有图像并使用以下命令检查“获取”响应:

    describe "Check for Images" do
        before { visit page_path }

        it "should not have broken images" do
          all_images = page.all('img')
          all_images.each do |img|
            get img[:src]
            expect(response).to be_successful
          end
        end  
    end

希望有帮助。