Sha256: 70d03b9c32b754c9a5b6a905250b9a5879a1613c76950cb586ccc89fa5abe82b

Contents?: true

Size: 1.68 KB

Versions: 9

Compression:

Stored size: 1.68 KB

Contents

module Mohawk
  module Adapters
    module UIA
      class Control
        include Mohawk::Waiter

        class << self
          attr_reader :patterns

          def valid_patterns(*patterns)
            @patterns = patterns
          end
        end

        def initialize(adapter, locator)
          @parent = adapter.window.element
          @locator = locator
        end

        def click
          element.click
        end

        def focus
          element.focus
        end

        def exist?
          locate_element != nil
        end
        alias_method :exists?, :exist?

        def enabled?
          exist? && element.enabled?
        end

        def disabled?
          !enabled?
        end

        def visible?
          exist? && element.visible?
        end

        def element
          @element ||= wait_until  { locate_element }
        end

        def handle
          element.handle
        end

        def value
          element.name
        end
        alias_method :control_name, :value

        def view
          self
        end

        def method_missing(meth, *args, &block)
          if element.respond_to? meth
            element.send meth, *args, &block
          else
            super
          end
        end

        private
        def locate_element
          scope = (@locator.delete(:children_only) && :children) || :descendants
          locator = @locator.merge(scope: scope)

          patterns = @locator.delete(:pattern) || self.class.patterns
          locator.merge!(pattern: patterns) if patterns

          @parent.find locator
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
mohawk-1.0 lib/mohawk/adapters/uia/control.rb
mohawk-0.4.4 lib/mohawk/adapters/uia/control.rb
mohawk-0.4.3 lib/mohawk/adapters/uia/control.rb
mohawk-0.4.2 lib/mohawk/adapters/uia/control.rb
mohawk-0.4.1 lib/mohawk/adapters/uia/control.rb
mohawk-0.4 lib/mohawk/adapters/uia/control.rb
mohawk-0.3 lib/mohawk/adapters/uia/control.rb
mohawk-0.2.1 lib/mohawk/adapters/uia/control.rb
mohawk-0.2 lib/mohawk/adapters/uia/control.rb