用RSpec / Capybara检查img的尺寸?

时间:2013-11-25 14:56:19

标签: ruby-on-rails ruby rspec capybara

我正在尝试测试img标记的维度而没有明确的heightwidth属性,但我不确定如何准确地执行此操作。

subject { page }

describe "profile page" do
  let(:user) { FactoryGirl.create(:user) }
  before { visit user_path(user) }

  describe "gravatar image" do
    it "should exist" do
      expect(page.first(".gravatar")).not_to be nil
    end

    it "should be 50x50" do
      gravatar = page.first(".gravatar")
      expect(gravatar[:height]).to eq(50)
      expect(gravatar[:width]).to eq(50)
    end
  end
end

对于存在的测试有效,但维度测试告诉我,heightwidth属性是nil,我可以理解,因为我从未明确地设置它们。但是如何获得图像的实际高度/宽度?​​

1 个答案:

答案 0 :(得分:3)

您可以使用evaluate_script和客户端javascript的组合来获得该结果:

page.evaluate_script("$('img')[0].clientHeight")

这将要求您的测试通过诸如poltergeist等的JS运行时执行。