我有下一个HTML代码:
<ul class="nav">
<li class="active">
<a href="/users/page">Page</a>
</li>
...
</ul>
我想确保我的li标签中包含“active”类并且在该文本中。
所以,我试过了:
response.should have_selector( "li", :class => "active" ,:content => "Page")
它不起作用,我得到这样的错误:
Failure/Error: response.should have_selector( "li", :class => "active" ,:content => "Page")
expected following output to contain a <li class='active'>Page</li> tag:
我如何解决我的问题?
答案 0 :(得分:9)
我认为您可以将该类添加到css选择器中。类似的东西:
response.body.should have_selector( "li.active", :content => 'Page')
答案 1 :(得分:3)
我解决了它:
response.body.should have_selector( "li.active") do
have_selector('a', :content => 'Pages')
end
答案 2 :(得分:0)
我们在Watir测试中遇到了类似的问题:class matcher是一个精确的字符串匹配;根本不像CSS类选择器。
我们的解决方法是切换到xpath选择器,例如:
response.should have_selector("li", :xpath => 'contains(@class, "active")')
警告:我没有机会测试上面的代码;我只是展示了我们如何对@class属性使用'contains'来匹配部分类字符串。