2012-03-07 55 views
6

的內部類的名字我旁邊的html代碼:Rspec的2 - 標籤

<ul class="nav"> 
    <li class="active"> 
     <a href="https://stackoverflow.com/users/page">Page</a> 
    </li> 
    ... 
</ul> 

我想確保我有L1標籤帶班「活動」,而該文本的內部。

所以,我試過了:

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: 

我怎麼能解決我的問題?

回答

3

我解決了它:

response.body.should have_selector("li.active") do 
    have_selector('a', :content => 'Pages') 
end 
0

我們有類似的問題與Watir測試,因爲:類匹配器是一個確切的字符串匹配;根本不像CSS類選擇器。

我們的解決方法是切換到的XPath選擇,例如:

response.should have_selector("li", :xpath => 'contains(@class, "active")') 

一個警告:我還沒有機會測試上面的代碼;我只是展示了我們如何使用'包含'來對付@class屬性以匹配部分類字符串。

9

我想你可以添加類到CSS選擇器。喜歡的東西:

response.body.should have_selector("li.active", :content => 'Page')