class Capybara::Node::Simple

def value

Returns:
  • (String) - The value of the form element
def value
  if tag_name == 'textarea'
    native['_capybara_raw_value']
  elsif tag_name == 'select'
    if native['multiple'] == 'multiple'
      native.xpath(".//option[@selected='selected']").map { |option| option[:value] || option.content }
    else
      option = native.xpath(".//option[@selected='selected']").first || native.xpath(".//option").first
      option[:value] || option.content if option
    end
  elsif tag_name == 'input' && %w[radio checkbox].include?(native[:type])
    native[:value] || 'on'
  else
    native[:value]
  end
end