Sha256: 63e251af31f7449bd7ee01ab71580540dbead9b1d7f3864742aef6b0143b7ffb

Contents?: true

Size: 1.6 KB

Versions: 26

Compression:

Stored size: 1.6 KB

Contents

module TestCentricity
  class ListElement < UIElement
    attr_accessor :list
    attr_accessor :element_locator

    def initialize(name, parent, locator, context, list, proxy = nil)
      @name            = name
      @parent          = parent
      @context         = context
      @alt_locator     = nil
      @list            = list
      @element_locator = locator

      set_locator_type(@list.get_locator)

      if locator.nil?
        @locator = list.get_list_row_locator('ROW_SPEC')
      else
        @locator = case @locator_type
                   when :xpath
                     "#{list.get_list_row_locator('ROW_SPEC')}/#{@element_locator}"
                   when :css
                     "#{list.get_list_row_locator('ROW_SPEC')} > #{@element_locator}"
                   end
      end
    end

    def exists?(row)
      obj, = find_list_element(row)
      obj != nil
    end

    def click(row)
      obj, = find_list_element(row)
      list_object_not_found_exception(obj, @type, row)
      obj.click
    end

    def get_value(row, visible = true)
      obj, = find_list_element(row, visible)
      list_object_not_found_exception(obj, @type, row)
      case obj.tag_name.downcase
        when 'input', 'select', 'textarea'
          obj.value
        else
          obj.text
      end
    end

    alias get_caption get_value

    def find_list_element(row, visible = true)
      set_alt_locator("#{@locator.gsub('ROW_SPEC', row.to_s)}")
      find_element(visible)
    end

    def list_object_not_found_exception(obj, obj_type, row)
      object_not_found_exception(obj, "Row #{row} #{obj_type}")
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
testcentricity_web-3.3.0 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.25 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.24 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.23 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.22 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.21 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.20 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.19 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.18 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.17 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.16 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.15 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.14 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.13 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.12 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.11 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.10 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.9 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.8 lib/testcentricity_web/web_elements/list_element.rb
testcentricity_web-3.2.7 lib/testcentricity_web/web_elements/list_element.rb