Saya memiliki bidang dengan label yang tepat yang dapat saya isi dengan capybara tanpa masalah:
fill_in 'Your name', with: 'John'
Saya ingin memeriksa nilainya sebelum mengisinya dan tidak dapat menemukannya.
Jika saya tambahkan setelah fill_in
baris berikut:
find_field('Your name').should have_content('John')
Tes itu gagal, meskipun pengisian sesaat sebelum bekerja karena saya telah memverifikasi dengan menyimpan halaman.
Apa yang saya lewatkan?
.value
sedikit. Terima kasih!find_field
dan lainnyaNode::Finders
digunakan untuk menemukan node dan melakukan tindakan pada mereka daripada harapan. Tentu saja ini bukan aturan, tetapi untuk sesuatu yang sederhana karena menggunakan solusi inbuilt adalah ide yang lebih baik. Hanya mengatakan!Solusi cantik lainnya adalah:
atau
masing-masing.
Lihat juga referensi .
Catatan : untuk input yang dinonaktifkan, Anda harus menambahkan opsi
disabled: true
.sumber
with
pasti hanya mengembalikan true jika nilainya cocok, bagi saya, yang merupakan hasil yang diharapkan.expected […] but there were no matches. Also found "", which matched the selector but not all filters..
bidang kosong yang mendekati pesan kesalahan yang sangat bagus.Jika Anda secara khusus ingin menguji pengganti, gunakan:
atau:
Jika Anda ingin menguji nilai yang dimasukkan pengguna:
sumber
Saya bertanya-tanya bagaimana melakukan sesuatu yang sedikit berbeda: Saya ingin menguji apakah lapangan memiliki beberapa nilai (sambil memanfaatkan kemampuan Capybara untuk menguji ulang korek api sampai cocok ). Ternyata mungkin menggunakan "blok filter" untuk melakukan ini:
sumber