如何使用Capybara在Rails date_field表单助手中选择日期

时间:2014-02-18 09:56:12

标签: ruby-on-rails capybara rspec2 form-helpers datefield

我有一个预订搜索表单,其中包含以下date_field帮助程序:

<%= date_field(:reservation, :arrival_date) %>

如何使用Capybara为此date_field标签选择特定日期?

我在规范中尝试select "2014-01-01", from: "reservation_arrival_date",但在运行规范时出现Capybara::ElementNotFound:错误。

提前致谢!

3 个答案:

答案 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'