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

时间:2018-03-07 09:12:27

标签: ruby-on-rails ruby rspec capybara

我发现了类似的问题How to fill in a datetime-local field with capybara?,这个帖子中唯一的答案是行不通的。所以我决定打开这个问题。似乎没有关于此的文档或教程。有解决方案吗?这将是一个很大的帮助!

2 个答案:

答案 0 :(得分:3)

不同浏览器接受设置日期时间输入字段的密钥是不同的,但是如果您使用带有chrome的selenium并且您实际上正在尝试填充可见的<input type="datetime-local">元素,正如您的问题所述,那么回答你所链接的问题应该有效 - 这是一个显示它有效的要点 - https://gist.github.com/twalpole/a541746b354afde8e82fa89a35a9b2da

该答案中的重要部分是您发送的字符串的格式,因为它需要匹配浏览器设置该输入所期望的键(to_json与该格式不匹配)

因此,在您想要设置DateTime.current的情况下,它应该是

的内容。
fill_in 'id/name/label of input', with: DateTime.current.strftime("%m%d%Y\t%I%M%P")

如果这对您不起作用,那么很可能您实际上并没有尝试填充可见的<input type="datetime-local">字段(也许您正在使用某种替换/隐藏输入的JS小部件? )并且您需要指定您要填写问题的确切HTML。

答案 1 :(得分:0)

根据我的理解,您需要填写日期时间格式的字符串表示

此类日期的例子是

1990-12-31T23:59:60Z

1996-12-19T16:39:57-08:00

类似

fill_in datetimeinput, with: "1990-12-31T23:59:60Z"

应该有效(希望如此!)