Method: Capybara::Selenium::SafariNode#set_text

Defined in:
lib/capybara/selenium/nodes/safari_node.rb

#set_text(value, clear: nil, **_unused) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/capybara/selenium/nodes/safari_node.rb', line 72

def set_text(value, clear: nil, **_unused)
  value = value.to_s
  if clear == :backspace
    # Clear field by sending the correct number of backspace keys.
    backspaces = [:backspace] * self.value.to_s.length
    send_keys([:control, 'e'], *backspaces, value)
  else
    super.tap do
      # React doesn't see the safaridriver element clear
      send_keys(:space, :backspace) if value.to_s.empty? && clear.nil?
    end
  end
end