2013-08-21 104 views
4

我有這樣一個文本字段:填寫現場無標籤

<%= form_for(ownership, remote: true) do |f| %> 
    <div> 
    <%= f.text_field :confirm, value: nil, title: t('label.transaction.confirmation.code') %> 
    <%= f.hidden_field :start_date, value: Time.now %> 
    </div> 
    <%= f.submit t('button.ownership.take.confirmation'), class: "btn btn-small"%> 
<% end %> 

我要填寫的文本字段使用RSpec:

fill_in t('label.transaction.confirmation.code'), with: "something" 

但事實並非如此因爲rspec無法識別標題標籤以填寫文本字段:

Failure/Error: fill_in t('label.transaction.confirmation.code'), with: confirmation_code 
    Capybara::ElementNotFound: 
     Unable to find field "Code de confirmation" 

你知道一種方法來填寫rspec的文本字段而不添加標籤嗎?

回答

3

fill_in方法的第一個參數必須是css選擇。例如:#id,li,.class

所以,你可以改變t('label.transaction.confirmation.code')

文本字段id[title='#{t('label.transaction.confirmation.code')}']

例如

<input id="conf_code"> 
fill_in 'conf_code', with: 'something' 
+0

行,所提供的HTML創建一個特定的ID爲我的文本字段:'<輸入的ID = 「transaction_confirm」 類型= 「文本」 名稱= 「交易[確認]」>'。所以我在我的測試文件中用'「transaction_confirm」'替換了't('label.transaction.confirmation.code')',它工作正常! –

+1

答案似乎不對或過時。 –