Скажите Capybara подождать, пока iframe загрузится (готово) - PullRequest
10 голосов
/ 08 сентября 2011

Есть ли элегантный способ сделать это?На данный момент я просто использую пользовательский шаг «И подожди 10 секунд», чтобы быть абсолютно уверенным, что у iframe достаточно времени, чтобы подготовиться.Я не хочу, чтобы эта функция не работала на моей CI VM с недостаточным питанием из-за небольшой проблемы в сети или скачков ЦП.Но это означает, что набор функций тратит много времени, и, как вы знаете, если набор тестов занимает много времени, часто не нужно запускать его вне CI-сервера.

1 Ответ

16 голосов
/ 28 сентября 2011

Если вы знаете, что будет в вашем iframe, вы можете сделать:

within_frame 'iframe_selector' do
    wait_until(10) do
        page.should have_content("Content you're waiting for")
    end
end

Метод wait_until будет ждать в течение 10 секунд или до тех пор, пока условие page.should не вернет true.

...