Module: Locator

Extended by:
Locator, Decoding
Included in:
Locator
Defined in:
lib/locator.rb,
lib/locator/dom.rb,
lib/locator/xpath.rb,
lib/locator/result.rb,
lib/locator/boolean.rb,
lib/locator/element.rb,
lib/locator/matcher.rb,
lib/locator/version.rb,
lib/locator/decoding.rb,
lib/locator/dom/htmlunit.rb,
lib/locator/dom/nokogiri.rb,
lib/locator/element/area.rb,
lib/locator/element/file.rb,
lib/locator/element/form.rb,
lib/locator/element/link.rb,
lib/locator/element/field.rb,
lib/locator/element/input.rb,
lib/locator/element/label.rb,
lib/locator/element/button.rb,
lib/locator/element/select.rb,
lib/locator/element/content.rb,
lib/locator/matcher/have_tag.rb,
lib/locator/dom/htmlunit/page.rb,
lib/locator/dom/nokogiri/page.rb,
lib/locator/element/check_box.rb,
lib/locator/element/text_area.rb,
lib/locator/dom/htmlunit/element.rb,
lib/locator/dom/nokogiri/element.rb,
lib/locator/element/form_element.rb,
lib/locator/element/hidden_field.rb,
lib/locator/element/radio_button.rb,
lib/locator/element/elements_list.rb,
lib/locator/element/select_option.rb,
lib/locator/element/labeled_element.rb

Defined Under Namespace

Modules: Boolean, Decoding, Dom, Matcher Classes: Element, ElementNotFound, Result, Xpath

Constant Summary collapse

VERSION =
"0.0.6"

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Decoding

decode, decode_attributes, decode_entities=, decode_entities?

Class Method Details

.[](type) ⇒ Object



21
22
23
# File 'lib/locator.rb', line 21

def [](type)
  locators[type.to_sym] || raise("unknown locator type: #{type}")
end

.build(type) ⇒ Object



25
26
27
28
# File 'lib/locator.rb', line 25

def build(type)
  locator = locators[type.to_sym] if type
  locator ? locator.new : Locator::Element.new(type)
end

Instance Method Details

#all(dom, *args) ⇒ Object



48
49
50
# File 'lib/locator.rb', line 48

def all(dom, *args)
  lookup(:all, dom, *args)
end

#locate(dom, *args, &block) ⇒ Object



52
53
54
# File 'lib/locator.rb', line 52

def locate(dom, *args, &block)
  lookup(:locate, dom, *args, &block)
end

#scopesObject



39
40
41
# File 'lib/locator.rb', line 39

def scopes
  @scopes ||= []
end

#within(*args) {|scopes.last| ... } ⇒ Object

Yields:



56
57
58
59
60
# File 'lib/locator.rb', line 56

def within(*args)
  dom = dom?(args.first) ? args.shift : scopes.pop
  scopes << resolve_scope(dom, args)
  yield(scopes.last)
end

#xpath(*args) ⇒ Object



43
44
45
46
# File 'lib/locator.rb', line 43

def xpath(*args)
  type = args.shift if args.first.is_a?(Symbol)
  Locator[type].new.xpath(*args)
end