module Capybara::BootstrapDatepicker
Adds datepicker interaction facilities to {Capybara}
Constants
- VERSION
-
the current version of the gem
Public Instance Methods
Source
# File lib/capybara-bootstrap-datepicker.rb, line 42 def select_bootstrap_date(date_input, value:, format: nil) date_input.click picker = Picker.new picker.goto_decade_panel picker.navigate_through_decades value.year picker.find_year(value.year).click picker.find_month(value.month).click picker.find_day(value.day).click if format.nil? || format.include?('%d') end
Selects a date by simulating human interaction with the datepicker @param (see select_simple_date
)
Source
# File lib/capybara-bootstrap-datepicker.rb, line 15 def select_date(value, datepicker: :bootstrap, format: nil, from: nil, xpath: nil, **args) raise "Must pass a hash containing 'from' or 'xpath'" if from.nil? && xpath.nil? value = value.respond_to?(:to_date) ? value.to_date : Date.parse(value) date_input = xpath ? find(:xpath, xpath, **args) : find_field(from, **args) case datepicker when :bootstrap select_bootstrap_date(date_input, value:, format:) else select_simple_date(date_input, value:, format:) first(:xpath, '//body').click end end
Selects a date by simulating human interaction with the datepicker or filling the input field @param value [#to_date, String] any object that responds to ‘#to_date` or a parsable date string @param datepicker [:bootstrap, :simple] the datepicker to use (are supported: bootstrap or input field) @param format [String, nil] a valid date format used to format value @param from [String, nil] the path to input field (required if `xpath` is nil) @param xpath [String, nil] the xpath to input field (required if `from` is nil) @param args [Hash] extra args to find the input field
Source
# File lib/capybara-bootstrap-datepicker.rb, line 34 def select_simple_date(date_input, value:, format: nil) value = value.strftime format unless format.nil? date_input.set "#{value}\e" end
Selects a date by filling the input field @param date_input the input field @param value [Date] the date to set @param format [String, nil] a valid date format used to format value