我正在尝试测试img标记的维度而没有明确的height
和width
属性,但我不确定如何准确地执行此操作。
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
对于存在的测试有效,但维度测试告诉我,height
和width
属性是nil
,我可以理解,因为我从未明确地设置它们。但是如何获得图像的实际高度/宽度?
答案 0 :(得分:3)
您可以使用evaluate_script
和客户端javascript的组合来获得该结果:
page.evaluate_script("$('img')[0].clientHeight")
这将要求您的测试通过诸如poltergeist等的JS运行时执行。