Sha256: 080e2956671dbe87d19356d2269491ab403b332155c762da585595bc846a21c0

Contents?: true

Size: 914 Bytes

Versions: 1

Compression:

Stored size: 914 Bytes

Contents

module Watir
  module Locators
    class Button
      class SelectorBuilder < Element::SelectorBuilder
        def build_wd_selector(selectors)
          return if selectors.values.any? { |e| e.is_a? Regexp }

          selectors.delete(:tag_name) || raise('internal error: no tag_name?!')

          button_attr_exp = xpath_builder.attribute_expression(:button, selectors)

          xpath = './/button'
          xpath << "[#{button_attr_exp}]" unless button_attr_exp.empty?

          unless selectors[:type].eql? false
            selectors[:type] = Watir::Button::VALID_TYPES if [nil, true].include?(selectors[:type])
            input_attr_exp = xpath_builder.attribute_expression(:input, selectors)

            xpath << ' | .//input'
            xpath << "[#{input_attr_exp}]"
          end

          p build_wd_selector: xpath if $DEBUG

          [:xpath, xpath]
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
watir-6.14.0 lib/watir/locators/button/selector_builder.rb