Sha256: a640e034ba50901f0e38b84c40dba194a5a7e4828123f9c2a060b96a304fb9b5

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 KB

Contents

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

            @requires_matches[: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

1 entries across 1 versions & 1 rubygems

Version Path
watir-6.15.0 lib/watir/locators/text_field/selector_builder/xpath.rb