gpt4 book ai didi

javascript - (Capybara) 访问模态窗口

转载 作者:数据小太阳 更新时间:2023-10-29 04:50:00 24 4
gpt4 key购买 nike

我正在编写请求规范...我使用 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 ==)

据我了解,实际上我的模态窗口不存在。

如有任何帮助,我们将不胜感激。

谢谢。

最佳答案

我没有使用 Capybara,但你的问题与 Bootstrap 的模态对话框实际上是一个伪模态的事实有关,因为它实际上只是一个 div 元素和一个透明的覆盖层它。例如,真正的模态对话框是使用 window.confirm 创建的,确实可以使用您的示例代码查询。在您的情况下,您应该为模态 div 元素提供一个 id,并将其用作句柄以从 Capybara 查询它并等待其显示为“ block ”。虽然没有测试任何东西。

关于javascript - (Capybara) 访问模态窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9805063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com