Capybara:如何测试页面的样式表?

时间:2011-12-11 03:25:59

标签: ruby-on-rails capybara

我希望能够在我的测试套件中测试正确的swapping of a stylesheet。有关testing the page title using Capybara的帖子,我想我可以测试页面link部分中的所有head代码。但似乎我错了。

这样的步骤:

save_and_open_page
page.should have_xpath("//link") # just something as simple as this, first.

save_and_open_page会生成这样的HTML(为简洁起见,删除了一些内容):

<head>
  ...
  <link href="/home/ramon/source/unstilted/public/system_test/stylesheets/fancake/css/2.css?1323572998" type="text/css" class="jquery-styler" rel="stylesheet">
  ...
</head>

但是我失败了:

expected xpath "//link" to return something (RSpec::Expectations::ExpectationNotMetError)

考虑到所有这些,如何测试样式表

谢谢!

2 个答案:

答案 0 :(得分:4)

如果要检查页面上是否存在CSS文件,则可以执行以下操作:

page.should have_xpath("//link[contains(@href, 'style.css')]")

这将检查<link>属性包含href的{​​{1}}个元素是否存在。关于“预期xpath返回某些内容”的错误意味着您提供的XPath实际上并不存在 - 为什么它认为,我不确定,因为您在HTML中有一个完全有效的style.css标记'提供了。

答案 1 :(得分:1)

当我检查css时,我所做的就像是

expect(page.body).to include('/home/ramon/source/unstilted/public/system_test/stylesheets/fancake/css/2.css')