如何用水豚填写日期时间 – 本地字段?

我正在使用Cocoon添加记录。 ID类似于workshop_instance_sessions_attributes_1477654140_start_time 。 目前我正在遍历DOM并获取动态生成的ID(这很好),所以我可以使用它们来引用输入来填充。我已经尝试了很多东西(许多在控制台中工作)但似乎仍然无法获得工作的规范。 下面是我尝试过的一些选择( first是保存id的变量, @time基本上是Time.now,当块执行时递增)。

在控制台中工作:

page.evaluate_script("document.getElementById('#{first}').value = '#{@time.strftime('%Y-%m-%eT%H:%M')}'")

page.evaluate_script("$('##{first}').val('#{@time.strftime("%Y-%m-%eT%H:%M")}')")

在控制台中不起作用:

fill_in first, with: @time.strftime("%Y-%m-%eT%H:%M")

find("##{first}").set(@time.strftime("%Y-%m-%eT%H:%M"))

这些都已经在一个内部块(我遇到的一个常见问题)中,我知道正确工作正确,因为正确设置了第一个变量。

作为参考我的HTML看起来像这样:

有关如何使此规范工作的任何指示将非常感激。

这将根据使用的驱动程序/浏览器而有所不同。 假设你正在使用带有chrome的selenium-webdriver,你需要设置要在控件中输入的键,以便设置12月13日2000 @ 3:15 PM你需要做的

 fill_in first, with: "12132000\t0315p" 

根据Capybara的发布说明:

在填写日期/时间/日期时间 – 本地输入时,Selenium驱动程序支持日期/时间

所以回答你的问题:

 fill_in first, with: Time.new(2018, 01, 02, 12)