Sha256: 1bb5d5d6cdb5bbef66cdb53401a9afce0590762cc91689c43cfde3b2fe74eacf

Contents?: true

Size: 873 Bytes

Versions: 1

Compression:

Stored size: 873 Bytes

Contents

require 'napybara'

module Napybara
  class Element
    attr_reader :node, :parent, :selector_string

    alias_method :get, :node

    def initialize(node, parent = nil, selector_string = nil, &block)
      @node = node
      @parent = parent
      @selector_string = selector_string

      block.call(self) if block_given?
    end

    def finder(child_element_name, child_element_selector, *optional_args, &block)
      appender = FinderMethodsAppender.new(
        self, child_element_name, child_element_selector, optional_args, block)

      appender.execute
    end

    def inspect
      %(#<Napybara::Element selector="#{selector}">)
    end

    def root
      parent ? parent.parent : self
    end

    def selector
      parent_selector = parent.try(:selector)
      parent_selector ? "#{parent_selector} #{selector_string}" : selector_string
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
napybara-0.7.0 lib/napybara/element.rb