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

gbe*_*rtl 6 ruby rspec ruby-on-rails capybara

我发现这个类似的问题How to fill in a datetime-local field with capybara? ,并且该线程中的唯一答案不起作用。所以我决定打开这个问题。似乎没有关于此的文档或教程。有什么解决办法吗?这将是一个很大的帮助!

Tho*_*ole 7

不同的浏览器接受设置日期时间输入字段的键是不同的,但是如果您将 selenium 与 chrome 一起使用,并且您实际上正在尝试填写可见元素<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")
Run Code Online (Sandbox Code Playgroud)

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