Sha256: 9d969ea276d926fb5fa1bcbb850bae21625d6bf0e8caaafbba6b12d05da288a0

Contents?: true

Size: 1.81 KB

Versions: 77

Compression:

Stored size: 1.81 KB

Contents

module TestCentricity
  class CellElement < UIElement
    attr_accessor :table
    attr_accessor :column
    attr_accessor :element_locator

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

      set_locator_type(@table.get_locator)
      set_column(column)
    end

    def set_column(column)
      @column  = column
      case @locator_type
      when :xpath
        @locator = "#{@table.get_table_cell_locator('ROW_SPEC', @column)}/#{@element_locator}"
      when :css
        @locator = "#{@table.get_table_cell_locator('ROW_SPEC', @column)} > #{@element_locator}"
      end
    end

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

    def click(row)
      obj, = find_cell_element(row)
      cell_object_not_found_exception(obj, @type, row)
      obj.click
    end

    def get_native_attribute(row, attrib)
      obj, = find_cell_element(row)
      cell_object_not_found_exception(obj, @type, row)
      obj.get_native_attribute(attrib)
    end

    def get_value(row, visible = true)
      obj, = find_cell_element(row, visible)
      cell_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_cell_element(row, visible = true)
      set_alt_locator("#{@locator.gsub('ROW_SPEC', row.to_s)}")
      find_element(visible)
    end

    def cell_object_not_found_exception(obj, obj_type, row)
      object_not_found_exception(obj, "Row #{row}/Col #{@column} #{obj_type}")
    end
  end
end

Version data entries

77 entries across 77 versions & 2 rubygems

Version Path
testcentricity_web-3.2.0 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.11 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.10 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.9.1 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.9 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.8 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.7 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.6 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.5.1 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.5 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.4 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.3 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.2 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.1 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.1.0 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.0.20 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.0.19.1 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.0.19 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.0.18 lib/testcentricity_web/web_elements/cell_element.rb
testcentricity_web-3.0.17 lib/testcentricity_web/web_elements/cell_element.rb