Problemy z interakcją z modami Bootstrap przez Capybara (v2)
W aplikacji Rails próbuję przetestować aBootstrap modalny zPole joken TokenInput w Rspec przy użyciu kapibary zcapybara-webkit
kierowca. Omawiana część wygląda następująco:
click_link 'Create Team Modal'
sleep 1
within('div#modal_popup') do
fill_in 'input#token-input-team_name', with: 'Fancy team name'
sleep 1
fill_in 'input#token-input-team_name', with: '\t'
sleep 1
click_button 'Create Team'
end
page.should have_content('Fancy team name')
Kliknij przycisk, aby przejść modalnieWypełnij TokenInput nazwą zespołuSymuluj klawisz Tab, aby go wybraćUtwórz zespółSprawdź, czy nazwa pojawia się na stronieTo działa tylko ze wszystkimisleep 1
s na miejscu; w przeciwnym razie Capybara ulega awariihave_content
, ostatecznie powodując błąd serwera, ponieważ nazwa zespołu nigdy nie mogła zostać wybrana poprawnie. Inne modalności Bootstrapbez pole TokenInput nie wymaga asleep 1
jednak zanim się załadują.
Czy mając wszystko, co powiedziano, czy istnieje sposób na pozbycie się snu i czy to postępuje normalnie? Kapibara 2 wyjęławait_until
(z dobrego powodu), ponieważ będzie czekał w domyślnym czasie oczekiwania na testowanie czegoś ... ale to nie wydaje się być odzwierciedlone w powyższym teście; to tak, jakby Capybara nie angażowała się w ten okres oczekiwania po wejściu / wyjściu z tego modalu. Czy ktoś ma z tym jakieś doświadczenie? Używanie Rails 3.2.10, Rspec 2.12, Capybara 2, capybara-webkit 0.14.0, TokenInput 1.6.