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

Adl*_*tos 2 ruby-on-rails form-helpers datefield capybara rspec2

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

<%= date_field(:reservation, :arrival_date) %>
Run Code Online (Sandbox Code Playgroud)

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

我尝试select "2014-01-01", from: "reservation_arrival_date"了我的规范,但Capybara::ElementNotFound:在运行规范时遇到错误.

提前致谢!

mde*_*lin 7

文档中所述,date_field不会产生<select>标签,但这<input type='date'>就是您无法使用的原因Capybara::Node::Actions#select.

相反,只需将其视为常规输入字段:

fill_in "reservation_arrival_date", with: "2014/01/01"
Run Code Online (Sandbox Code Playgroud)


Adl*_*tos 2

我没有找到在 date_field 标记中单击并选择日期的方法,而是执行了以下操作:

page.find('#reservation_arrival_date').set("2014-01-01")
Run Code Online (Sandbox Code Playgroud)

这非常有效,而且我发现这种方法非常简单。但我不确定这对于集成测试来说有多“尴尬”。