У меня есть следующая форма, и я хочу проверить, присутствует ли текстовое поле или нет. Как я могу это сделать ? Проверить наличие текстового поля формы с capybara
<%= form_for(ownership, remote: true) do |f| %>
<div>
<%= f.text_field :confirm, value: nil %>
<%= f.hidden_field :start_date, value: Time.now %>
</div>
<%= f.submit t('button.ownership.take.confirmation'), class: "btn btn-small"%>
<% end %>
Вот мой тест:
describe "for not confirmed ownership" do
before do
FactoryGirl.create(:agreed_ownership, user: current_user, product: product)
be_signed_in_as(current_user)
visit current_page
end
# it { should_not have_text_field(confirm) }
it { should_not have_button(t('button.ownership.take.confirmation')) }
end
Большое спасибо ! И можете ли вы помочь мне с заполнением этой области? Могу ли я сделать что-то вроде ввода 'fill_in '[type =" text "] [name =" confirm "]', с помощью:« Что-то »? –
Для заполнения поля с помощью ['fill_in'] (http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Actions#fill_in-instance_method) вам нужно использовать« локатор », который строка Capybara проверяет текст 'label' поля, атрибут name и атрибут id. Если вы не хотите использовать какие-либо из этих атрибутов, вы также можете сделать что-то вроде 'find ('input [type =" text "] [name =" confirm "]'). Set (" Something ")', но Я не большой поклонник, так как этот синтаксис кажется довольно далеким от того, как ваш пользователь будет испытывать/использовать ваше приложение, что является условной целью использования Capybara. –
Хорошо, я пробовал, но это не сработало: 'Capybara :: ElementNotFound: Не удалось найти css 'input [type = \" text \ "] [name = \" confirm \ "]" ' –