2013-01-15 8 views
36

Chcę mieć różne czasy oczekiwania Capybara w moim kodzie w zależności od tego, ile czasu zazwyczaj trwa do całkowitego załadowania? Czy muszę stale zmieniać kod Capybara.default_wait_time, czy jest lepszy sposób?Wiele czasów oczekiwania na Capybara?

Odpowiedz

65

Można użyć using_wait_time(seconds) metody takie jak:

using_wait_time 3 do 
    expect(page).to have_text 'Lorem ipsum' 
end 

lub :wait opcji (który ukazał się w Kapibara 2.1).

Należy pamiętać, że opcja :wait była obsługiwana tylko przez metodę find w Capybara 2.1.

Wsparcie :wait opcja w dopasowujących (tj has_x? i have_x metody) został dodany w Kapibara 2.2:

expect(page).to have_text('Lorem ipsum', wait: 3) 
+0

Doskonała odpowiedź, dzięki za wspomnieć nadchodzącą wsparcie. – Jazzepi

+0

Może czegoś tu brakuje, ale czy to nie jest tylko fantazyjny sposób używania snu (x)? – Dono

+4

@Dono 'sleep' zawsze będzie pauzował dla' x'. 'have_text' zatrzyma się na czas do' x' (aż pojawi się tekst). –