【发布时间】:2019-03-06 00:41:39
【问题描述】:
我正在使用 Capybara 和 SitePrism 堆栈测试 UI 流程。不幸的是,我的 UI 流不是完全确定的,有时会在流中弹出一条警告消息。因此我需要在测试中有一个条件流。
为了等待单个元素,SitePrism 提供了
@page.wait_for_<element name>
在我的例子中,可以出现两个元素,:button_submit 或 :warning_popup。我需要实现的是:
element_name = @page.wait_for_any_of(:button_submit, :warning_popup)
除了像这样运行循环之外,还有其他更优雅的方法吗?
element_name = nil
while (element_name.nil?) do
element_name = :button_submit if app.page.has_button_submit?
element_name = :warning_popup if app.page.has_warning_popup?
sleep 0.1
end
我知道这个循环可能会以无限循环结束,我将在此处简化以作说明。
【问题讨论】:
标签: ruby selenium capybara coded-ui-tests site-prism