Sha256: eb58ea39817d352fc91e9ebc82001884fd6c45d7935e764e35a84415bbc68186

Contents?: true

Size: 1.23 KB

Versions: 20

Compression:

Stored size: 1.23 KB

Contents

module RAutomation
  module Adapter
    module Win32
      class TextField < Control
        include WaitHelper
        include Locators

        # Default locators used for searching text fields.
        DEFAULT_LOCATORS = {:class => /edit/i}

        # @see RAutomation::TextField#set
        def set(text)
          assert_enabled

          wait_until do
            hwnd = Functions.control_hwnd(@window.hwnd, @locators)
            @window.activate
            @window.active? &&
                    focus &&
                    Functions.set_control_text(hwnd, text) &&
                    set?(text)
          end
        end

        # @see RAutomation::TextField#clear
        def clear
          assert_enabled
          set ""
        end

        # @see RAutomation::Window#send_keys
        def send_keys(*keys)
          @window.container.wait_until_present
          assert_enabled
          @window.activate
          focus
          @window.send_keys(keys)
        end

        private

        def set?(text)
          value == text
        end

        def assert_enabled
          raise "Cannot set value on a disabled text field" if disabled?
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
rautomation-2.0.1-x86-mingw32 lib/rautomation/adapter/win_32/text_field.rb
rautomation-2.0.1-x64-mingw32 lib/rautomation/adapter/win_32/text_field.rb
rautomation-1.1.0 lib/rautomation/adapter/win_32/text_field.rb
rautomation-1.0.0 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.17.0 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.16.0 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.15.0 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.14.1 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.14.0 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.13.0 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.12.0 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.11.0 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.10.0 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.9.4 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.9.3 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.9.2 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.9.1 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.9.0 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.8.0 lib/rautomation/adapter/win_32/text_field.rb
rautomation-0.7.3 lib/rautomation/adapter/win_32/text_field.rb