Module: Celerity::XpathSupport
Overview
Module to search by xpath
Instance Method Summary collapse
-
#element_by_xpath(xpath) ⇒ Celerity::Element
Get the first element found matching the given XPath.
-
#element_from_dom_node(obj, identifier_string = nil) ⇒ Object
Convert the given HtmlUnit DomNode to a Celerity object.
-
#elements_by_xpath(xpath) ⇒ Array<Celerity::Element>
Get all the elements matching the given XPath.
Instance Method Details
#element_by_xpath(xpath) ⇒ Celerity::Element
Get the first element found matching the given XPath.
16 17 18 19 20 |
# File 'lib/celerity/xpath_support.rb', line 16 def element_by_xpath(xpath) assert_exists obj = @page.getFirstByXPath(xpath) element_from_dom_node(obj, ":xpath and #{xpath.inspect}") end |
#element_from_dom_node(obj, identifier_string = nil) ⇒ Object
Convert the given HtmlUnit DomNode to a Celerity object
40 41 42 43 44 45 46 47 48 |
# File 'lib/celerity/xpath_support.rb', line 40 def element_from_dom_node(obj, identifier_string = nil) element_class = Util.htmlunit2celerity(obj.class) || Element element = element_class.new(self, :object, obj) element.identifier_string = identifier_string element.extend(ClickableElement) unless element.is_a?(ClickableElement) element end |
#elements_by_xpath(xpath) ⇒ Array<Celerity::Element>
Get all the elements matching the given XPath.
29 30 31 32 33 34 |
# File 'lib/celerity/xpath_support.rb', line 29 def elements_by_xpath(xpath) assert_exists objects = @page.getByXPath(xpath) # should use an ElementCollection here? objects.map { |o| element_from_dom_node(o) } end |