adr*_*a84 7 javascript capybara modal-window
我正在写请求规格...我使用Capybara ......我遇到了一些模态窗口的麻烦.
我在测试中真正想要的是填写一个弹出模态窗口的表单.
模态是使用Twitter的Bootstrap创建的(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)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
但没有一个工作......所以我想在模态窗口处于活动状态时渲染窗口句柄的数量...
所以我这样做了:
puts page.driver.browser.window_handles.length.should == 2
Run Code Online (Sandbox Code Playgroud)
我得到了这个:
Failure/Error: page.driver.browser.window_handles.length.should == 2
expected: 2
got: 1 (using ==)
Run Code Online (Sandbox Code Playgroud)
据我所知,实际上我的模态窗口不存在.
对此的任何帮助将不胜感激.
谢谢.
我没有使用 Capybara,但您的问题与 Bootstrap 的模式对话框实际上是伪模式这一事实有关,因为它实际上只是一个div元素和其后面的透明覆盖层。window.confirm例如,真正的模式对话框是使用 创建的,确实可以使用示例代码进行查询。在你的情况下,你应该给模态div元素一个id,并使用它作为句柄从 Capybara 查询它并等待它的显示为“块”。但没有测试任何东西。
| 归档时间: |
|
| 查看次数: |
3247 次 |
| 最近记录: |