Pertanyaan Bagaimana menemukan elemen pencocokan terakhir di capybara?


Saya ingin menemukannya class_name dan kembali elemen terakhir di antara semua elemen.

Dalam jquery, kita bisa menulis sesuatu seperti di bawah tetapi itu sepertinya tidak bekerja di capybara

find(".delete:last")

Jika Anda menggunakan webkit driver Anda dapat menulis sesuatu seperti -

find(".delete:last-child")

Di capybara, Anda bisa mendapatkan elemen terakhir menggunakan di bawah -

all(:css, ".delete").last

Apakah ada alternatif di atas?


32
2017-08-29 09:40


asal


Jawaban:


Saya memiliki masalah yang sama dan akhirnya menggunakan metode ini di Capybara 2.4

all('.delete').last

44
2017-07-04 12:06



Membangun jawaban @Sharagoz dan komentar @ tgf tentang semua (tidak seperti temuan) tidak menunggu async selesai, kombinasi ini tampaknya bekerja untuk saya:

wait_for_ajax
all('.selector').last

Dengan ini ditambahkan ke rspec / capybara:

module RspecFeatureHelpers
  def wait_for_ajax
    Timeout.timeout(Capybara.default_max_wait_time) do
      loop do
        active = page.evaluate_script('jQuery.active')
        break if active == 0
      end
    end
  end
end

0
2017-11-26 20:00