【发布时间】:2013-06-03 13:59:11
【问题描述】:
我在 SitePrism 页面中定义了以下元素:
element :type, "select[id='type']"
elements :type_options, "select[id='type'] option"
在我的黄瓜步骤定义中,我有以下代码可以根据元素值从选择框中选择一个项目:
@app.new.type_options.each {|name| name.click if name.text.upcase == value.upcase}
我不太喜欢这个实现,但是在 Chrome 中运行 Capybara 时它确实可以完美运行,但是当我无头运行它时会失败,所以我认为必须有一种替代/更好的方法来选择下拉项目。
理想情况下,我希望能够执行@app.new_r.r_type.select 'value' 之类的操作,但我不知道如何在 SitePrism 中执行此操作。
那么,我的第一个问题是,谁能推荐一种优雅的方式来根据 SitePrism 的值从下拉列表中选择一个项目?
我的第二个问题是,知道为什么上面的代码在无头运行时会失败吗?
【问题讨论】:
-
尝试
@app.new_r.r_type.select 'value'会得到什么? -
我得到一个无法找到选项“事件”(Capybara::ElementNotFound)错误。
-
更正 - 我之前尝试过这个,但我试图将 'value' 与 'Value' 匹配,并得到一个无法找到选项 "event" (Capybara::ElementNotFound) 错误。修复我的匹配器后,现在可以正常工作了。这也解决了我的第二个问题。谢谢纳特!
-
如果你能写出这个问题的答案,以造福未来的谷歌员工,那就太好了! :)
-
酷。现在,如果您可以将其设为实际“答案”(即:将上述内容复制并粘贴到stackoverflow认为的答案中),那就更好了:)
标签: ruby cucumber capybara site-prism