Подтвердить что ты не робот

Как найти последний элемент соответствия в capybara?

Мне нужно найти class_name и вернуть последний элемент из всех элементов.

В jquery мы можем написать что-то вроде ниже, но это, похоже, не работает в capybara

find(".delete:last")

Если вы используете драйвер webkit, вы можете написать что-то вроде:

find(".delete:last-child")

В capybara вы можете получить последний элемент, используя ниже -

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

Есть ли альтернатива выше?

4b9b3361

Ответ 1

У меня была такая же проблема, и я использовал этот метод в Capybara 2.4

all('.delete').last

Ответ 2

На основе ответа @Sharagoz и комментария @tgf обо всех (в отличие от поиска), не ожидающих завершения async, эта комбинация работает для меня:

wait_for_ajax
all('.selector').last

С этим добавляется 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