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 填写文本字段而不添加标签的方法吗?

4

1 回答 1

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'
于 2013-08-21T07:21:23.583 回答