我正在写请求规格...我使用水豚...并且我遇到了一些模式窗口的麻烦。(水豚)访问模式窗口
我在测试中真正想要的是填写一个窗体,弹出一个模态窗口。
该模式是使用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