2012-07-13 33 views

回答

2

你可以嘗試像多數民衆贊成所有( 'A')長度

下面是幾個例子:

describe 'my awesome page' do 
    before :each do 
    visit root_path 
    end 

    # css just for querying DOM 
    it 'number of titles should be huge' do 
    page.all(:css,'h2.awesome_header').length.should have_at_least(3).items 
    end 
    it 'has exactly 4 div elements' do 
    page.all(:css,'div.awesome_class').length.should == 4 
    end 

    # For querying content you can try :xpath instead :css. 
    it 'has paragraps with text' do 
    page.all(:xpath, '//div[contains(., "t")]').length.should == 9 
    end 
end 

更新:

我找到更優雅的方式來做這個。 檢查文檔在這裏:http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Finders:all 這裏工作示例

page.all(:css, 'p', :text => /.*wellcome.*/).length.should == 2 
+0

不知道你的意思在這裏。你能用這個語法給我寫一個示例測試嗎? – 2012-07-13 21:19:49

+0

這些都是非常好的例子,但是我真的很想找到一個字符串在渲染頁面上出現的次數,而不知道DOM中可能存在或不存在的地方。我會投票答覆你的答案,因爲這是很好的信息,但我不打算將它標記爲「答案」,因爲它並沒有真正讓我做出我想做的事情。謝謝你一堆:) – 2012-07-16 17:45:00

+0

你可以使用一些正則表達式來反對 - ** page.text ** – Vladimir 2012-07-16 18:10:11