1

我第一次嘗試水豚,並且遇到了找到我的表格的麻煩。我使用Rspec,Capybara,Rails 3.2.8和Twitter Bootstrap。水豚沒有找到表格字段

在我的測試,我有:

before do 
    choose "Residential" 
    choose "Storage" 
    fill_in "Customer Location", with: 30082 
    fill_in "datepicker",   with: 2012-12-02 
    fill_in "Email",    with: "[email protected]" 
    fill_in "Phone",    with: "555-555-5555" 
end 

,並得到錯誤:

Failure/Error: choose "Residential" 
    Capybara::ElementNotFound: 
    cannot choose field, no radio button with id, name, or label 'Residential' found 

在我的形式,我有(摘錄):

<%= quote.radio_button :customer_type, "Residential"%> 
    <%= quote.label "Residential", class:"radio inline" %> 

當我啓動了服務器,我可以看到表單,Firebug顯示我有一個名爲「Residential」的標籤與表單元素相關聯。

找到問題後,找到這個帖子:Capybara not finding form elements(其中包括),我找不出它爲什麼不起作用。

回答

1

我最終回到了水豚的魯比多克斯(http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Actions),並找到了「選擇」方法的部分。

我沒有深入研究文檔,但是我發現它正在尋找radio_button中的「定位器」,並試圖直接關聯它。

我因此改變了我的表格(注意我說「ID」的表單元素):

<%= quote.radio_button :customer_type, "Residential", id:"Residential"%> 
    <%= quote.label "Residential", class:"radio inline" %> 

和測試通過的那部分!我重複每一個表單元素,一切按預期執行。

希望這對其他人有用。