Я пишу спецификации запросов ... Я использую Capybara ... И у меня проблемы с некоторыми модальными окнами.
Что я действительно хочу в моем тесте, так это заполнить форму, которая появляется вмодальное окно.
Модальное создается с помощью Bootstrap из Twitter (http://twitter.github.com/bootstrap/javascript.html#modals)... и проходит через ряд переходов (но я не знаю, имеет ли это отношение к тому, о чем ясказать).
Я попытался найти несколько обходных путей, найденных в Интернете, например:
A) переключение между страницами с помощью page.driver.browser.window_handles
page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
B)используя wait_until
, чтобы убедиться, что модальные загрузки
def modal_wrapper_id
'#modal-edit'
end
def modal_visible
wait_until { find(modal_wrapper_id).visible? }
rescue Capybara::TimeoutError
flunk 'Expected modal to be visible.'
end
, но ни одна из них не сработала ... поэтому я подумал визуализировать количество дескрипторов окна в тот момент, когда модальное окно активно ...
Итак, я сделал это:
puts page.driver.browser.window_handles.length.should == 2
И я получил это:
Failure/Error: page.driver.browser.window_handles.length.should == 2
expected: 2
got: 1 (using ==)
Из того, что я понимаю, практически мое модальное окно не существует.
Любая помощь по этому вопросу будет принята с благодарностью.
Спасибо.