У меня есть поле с правильной меткой, которую я могу заполнить капибарой без проблем:
fill_in 'Your name', with: 'John'
Я хотел бы проверить значение, которое он имеет, прежде чем заполнять его, и не могу понять это.
Если я добавлю после fill_in
следующей строки:
find_field('Your name').should have_content('John')
Этот тест не пройден, хотя заполнение непосредственно перед этим сработало, как я подтвердил, сохранив страницу.
Чего мне не хватает?
.value
немного. Спасибо!find_field
и другиеNode::Finders
используются для поиска узлов и выполнения над ними действий, а не ожидания. Конечно, это не правило, но для чего-то простого, так как лучше использовать встроенное решение. Просто говорю!Другое красивое решение будет:
или
соответственно.
Также см. Ссылку .
Примечание : для отключенных входов вам нужно добавить опцию
disabled: true
.источник
with
определенно только вернула true, если значение для меня совпадает, что является ожидаемым результатом.expected […] but there were no matches. Also found "", which matched the selector but not all filters..
пустое поле, которое очень близко подходит к очень приятному сообщению об ошибке.Если вы специально хотите проверить заполнитель, используйте:
или:
Если вы хотите проверить введенное пользователем значение:
источник
Мне было интересно, как сделать что-то немного другое: я хотел проверить, имеет ли поле какое- то значение (используя при этом способность Capybara повторно проверять совпадение, пока оно не совпадет ). Оказывается, что для этого можно использовать «блок фильтра»:
источник