Sha256: 211174ac439fe31d9395616d037f755086f1a3e4c7493fe1fa920d8154002428

Contents?: true

Size: 1.26 KB

Versions: 7

Compression:

Stored size: 1.26 KB

Contents

module Watir
  module Locators
    class TextField
      class SelectorBuilder
        class XPath < Element::SelectorBuilder::XPath
          def text_string
            return super if @adjacent

            @built[:text] = @selector.delete(:text) if @selector.key?(:text)
            ''
          end

          def additional_string
            return '' if @adjacent

            type_string(@selector.delete(:type))
          end

          def tag_string
            @selector[:tag_name] = 'input' unless @adjacent
            super
          end

          def type_string(type)
            if type.eql?(true)
              "[#{negative_type_text}]"
            elsif Watir::TextField::NON_TEXT_TYPES.include?(type)
              msg = "TextField Elements can not be located by type: #{type}"
              raise LocatorException, msg
            elsif type.nil?
              "[not(@type) or (#{negative_type_text})]"
            else
              "[#{process_attribute(:type, type)}]"
            end
          end

          def negative_type_text
            Watir::TextField::NON_TEXT_TYPES.map { |type|
              "#{lhs_for(:type, true)}!=#{SelectorBuilder::XpathSupport.escape type}"
            }.join(' and ')
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
watir-6.16.5 lib/watir/locators/text_field/selector_builder/xpath.rb
watir-6.16.4 lib/watir/locators/text_field/selector_builder/xpath.rb
watir-6.16.3 lib/watir/locators/text_field/selector_builder/xpath.rb
watir-6.16.2 lib/watir/locators/text_field/selector_builder/xpath.rb
watir-6.16.1 lib/watir/locators/text_field/selector_builder/xpath.rb
watir-6.16.0 lib/watir/locators/text_field/selector_builder/xpath.rb
watir-6.15.1 lib/watir/locators/text_field/selector_builder/xpath.rb