module Pincers::Extension::Queries

Constants

TEXT_INPUTS

Public Instance Methods

checked(_options={}) click to toggle source
# File lib/pincers/extension/queries.rb, line 33
def checked(_options={})
  first!.search('input', _options).select(&:checked?)
end
classes() click to toggle source
# File lib/pincers/extension/queries.rb, line 25
def classes
  (self[:class] || '').split(' ')
end
download() click to toggle source
# File lib/pincers/extension/queries.rb, line 48
def download
  url = attribute(:href) || attribute(:src)
  raise Pincers::NavigationError.new(self, 'No resource url was found') if url.nil?
  root.download(attribute(:href) || attribute(:src))
end
id() click to toggle source
# File lib/pincers/extension/queries.rb, line 6
def id
  self[:id]
end
input_mode() click to toggle source
# File lib/pincers/extension/queries.rb, line 37
def input_mode
  return :select if tag == 'select'
  return :button if tag == 'button' # TODO: button types
  return :text if tag == 'textarea'
  return nil if tag != 'input'

  type = (self[:type] || 'text').downcase
  return :text if TEXT_INPUTS.include? type
  type.to_sym
end
selected(_options={}) click to toggle source
# File lib/pincers/extension/queries.rb, line 29
def selected(_options={})
  first!.search('option', _options).select(&:selected?)
end
value() click to toggle source
# File lib/pincers/extension/queries.rb, line 10
def value
  case input_mode
  when :checkbox, :radio
    if checked? then self[:value] else nil end
  else
    self[:value]
  end
end