Saya mengikuti dua elemen dalam HTML
<a href="/berlin" >Berlin</a>
<a href="/berlin" >Berlin Germany </a>
Saya mencoba menemukan elemen dengan menggunakan metode Capybara berikut
find("a", :text => "berlin")
Di atas akan mengembalikan dua elemen karena keduanya mengandung teks berlin.
Apakah ada cara untuk mencocokkan teks yang sama persis di Kapibara?
Jawaban:
Cukup gunakan opsi tepat Kapibara :
sumber
Gunakan regexp sebagai ganti string untuk nilai
:text
kunci:Lihat bagian 'Opsi Hash' dari
Method: Capybara::Node::Finders#all
dokumentasi .PS: kecocokan teks peka huruf besar / kecil. Kode contoh Anda sebenarnya menimbulkan kesalahan:
sumber
click_link(link_text, :text => link_text)
Bergantung pada versi permata yang Anda gunakan
mungkin sudah usang. Dalam hal ini Anda harus menggunakan
sumber
Preferensi saya adalah menggunakan
have_selector
withtext
danexact_text: true
:sumber
Anda juga dapat melakukannya:
Itu akan menemukan CSS.
Dan hanya menggunakan
exact: true
sebagai ganti dariexact_text
akan menampilkan pesan bahwaexact
opsi tersebut hanya berlaku untuk XPATH.sumber
find("a", exact_text: "berlin")
Untuk menggunakan click_link di kapibara, Anda perlu menambahkan satu properti lagi dalam metode yang menggunakannya.
Di sini nama_link adalah nilai teks dari sebuah tautan. Menggunakan : kata kunci teks kami menentukan bahwa kami ingin mengklik tautan yang memiliki nilai teks yang sama persis dengan kebutuhan kami.
sumber