Sha256: 895f21ff41c1c7b73d893d3e25f1abecb42982c10dbb316b307cadb16b997ec2

Contents?: true

Size: 810 Bytes

Versions: 3

Compression:

Stored size: 810 Bytes

Contents

module Watir
  class ChildRowLocator < ElementLocator

    def locate_all
      find_all_by_multiple
    end

    private

    def by_id
      nil # avoid this
    end

    def build_wd_selector(selectors)
      return if selectors.values.any? { |e| e.kind_of? Regexp }
      selectors.delete(:tag_name) || raise("internal error: no tag_name?!")

      expressions = %w[./tr]
      unless %w[tbody tfoot thead].include?(@wd.tag_name.downcase)
        expressions += %w[./tbody/tr ./thead/tr ./tfoot/tr]
      end

      attr_expr = attribute_expression(selectors)

      unless attr_expr.empty?
        expressions.map! { |e| "#{e}[#{attr_expr}]" }
      end

      xpath = expressions.join(" | ")

      p build_wd_selector: xpath if $DEBUG

      [:xpath, xpath]
    end

  end # ChildRowLocator
end # Watir

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
watir-webdriver-0.9.1 lib/watir-webdriver/locators/child_row_locator.rb
watir-webdriver-0.9.0 lib/watir-webdriver/locators/child_row_locator.rb
watir-webdriver-0.8.0 lib/watir-webdriver/locators/child_row_locator.rb