From 5f9011dcc46da5bba6400b6729795b1e23a6258a Mon Sep 17 00:00:00 2001 From: "Luiz Felipe G. Pereira" Date: Mon, 5 Jan 2026 11:19:37 -0300 Subject: [PATCH] Allow time inputs to be filled with time strings --- lib/capybara/cuprite/node.rb | 2 ++ spec/features/driver_spec.rb | 28 ++++++++++++++++++++++++++++ spec/support/views/time_fields.erb | 9 +++++++++ 3 files changed, 39 insertions(+) create mode 100644 spec/support/views/time_fields.erb diff --git a/lib/capybara/cuprite/node.rb b/lib/capybara/cuprite/node.rb index d4f12395..45dc7cc6 100644 --- a/lib/capybara/cuprite/node.rb +++ b/lib/capybara/cuprite/node.rb @@ -103,6 +103,8 @@ def set(value, options = {}) command(:select_file, files) when "color" node.evaluate("this.setAttribute('value', '#{value}')") + when "time" + command(:set, value.is_a?(String) ? Time.parse(value).to_s : value.to_s) else command(:set, value.to_s) end diff --git a/spec/features/driver_spec.rb b/spec/features/driver_spec.rb index 4896324c..734ba240 100644 --- a/spec/features/driver_spec.rb +++ b/spec/features/driver_spec.rb @@ -1537,6 +1537,34 @@ def create_screenshot(file, *args) end end + context "time_fields" do + before { @session.visit("/cuprite/time_fields") } + + it "sets a time with HH:MM format" do + input = @session.find(:css, "#time_field") + input.set("10:00") + expect(input.value).to eq("10:00:00") + end + + it "sets a time with HH:MM:SS format" do + input = @session.find(:css, "#time_field") + input.set("14:30:45") + expect(input.value).to eq("14:30:45") + end + + it "sets a time from a Time object" do + input = @session.find(:css, "#time_field") + time = Time.parse("10:30:00") + input.set(time) + expect(input.value).to match(/10:30:0?0/) + end + + it "fills in a time field with a time string" do + @session.fill_in "time_field", with: "09:15" + expect(@session.find(:css, "#time_field").value).to eq("09:15:00") + end + end + context "evaluate_script" do it "can return an element" do @session.visit("/cuprite/send_keys") diff --git a/spec/support/views/time_fields.erb b/spec/support/views/time_fields.erb new file mode 100644 index 00000000..b1ea46d6 --- /dev/null +++ b/spec/support/views/time_fields.erb @@ -0,0 +1,9 @@ + + + + + + + + +