填写没有标签的字段

时间:2013-08-21 06:50:36

标签: ruby-on-rails rspec textfield

我有一个像这样的文字字段:

<%= 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填写文本字段而无需添加标签的方法?

1 个答案:

答案 0 :(得分:3)

fill_in方法的第一个参数必须是css选择。例如:#idli.class

因此,您可以更改t('label.transaction.confirmation.code')

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

e.g。

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