我正在寫請求規格...我使用水豚...並且我遇到了一些模式窗口的麻煩。(水豚)訪問模式窗口
我在測試中真正想要的是填寫一個窗體,彈出一個模態窗口。
該模式是使用Twitter的引導程序(http://twitter.github.com/bootstrap/javascript.html#modals)創建的...並且它正在經歷一組轉換(但我不知道這是否與我將要說的相關)。
我已經嘗試了一些解決方法我發現在網絡上,如:
A)使用wait_until
page.driver.browser.window_handles
page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
B)頁面之間切換,以確保該模式的負載
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 ==)
據我瞭解,實際上我的模態窗口不存在。
任何幫助這一個將不勝感激。
謝謝。
我正在使用硒! 'Capybara.default_driver =:硒' – adritha84 2012-03-28 07:37:58
好的,你沒有在你的文章中提到過。由於我沒有看到任何錯誤,所以我會確保你確實在你的測試套件中調用了彈出窗口(通過點擊等等,我不知道業務邏輯)。此後,您可以在「調用彈出式」操作後進行一些睡眠10,僅用於測試目的。 – socjopata 2012-03-28 10:20:36
我確實在我的規範中加入了一些「睡眠」操作,並且我用很多方式對它進行了測試......並且如您所說,我也沒有看到任何錯誤...但是仍然會出現指定的錯誤,意味着該模式窗口的句柄不存在,因此該窗口不存在。 – adritha84 2012-03-28 13:37:17