【发布时间】:2012-04-05 23:57:09
【问题描述】:
我正在编写请求规范...我使用 Capybara...而且我遇到了一些模态窗口的问题。
我在测试中真正想要的是填写一个在模式窗口中弹出的表单。
模态框是使用来自 Twitter (http://twitter.github.com/bootstrap/javascript.html#modals) 的 Bootstrap 创建的...并且它正在经历一组转换(但我不知道这是否与我要说的有关)。
我尝试了一些在网上找到的解决方法,例如:
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 ==)
据我了解,实际上我的模态窗口不存在。
对此的任何帮助将不胜感激。
谢谢。
【问题讨论】:
标签: javascript capybara modal-window