我有一个预订搜索表单,其中包含以下date_field帮助程序:
<%= date_field(:reservation, :arrival_date) %>
如何使用Capybara为此date_field标签选择特定日期?
我在规范中尝试select "2014-01-01", from: "reservation_arrival_date"
,但在运行规范时出现Capybara::ElementNotFound:
错误。
提前致谢!
答案 0 :(得分:6)
正如documentation中所述,date_field
不会产生<select>
标记,而是<input type='date'>
这就是您无法使用Capybara::Node::Actions#select
的原因。
相反,只需将其视为常规输入字段:
fill_in "reservation_arrival_date", with: "2014/01/01"
答案 1 :(得分:1)
而不是找到一种方法来点击并选择date_field标签中的日期,而是执行以下操作:
page.find('#reservation_arrival_date').set("2014-01-01")
这非常有效,我发现这种方法非常简单。但我不确定整合测试看起来有多“尴尬”。
答案 2 :(得分:1)
2020年:
fill_in :reservation_arrival_date, with: '2020-01-01'