Sha256: 3aacfe737d64bd2864ce491a406adea9d9a88dd3b9fa6d974ff1fe33c6f40347

Contents?: true

Size: 1.71 KB

Versions: 3

Compression:

Stored size: 1.71 KB

Contents

require_relative 'locator/attributes'

module TestaAppiumDriver
  #noinspection RubyTooManyInstanceVariablesInspection
  class Locator
    include TypeSelectors

    def init(params, selectors, single)
      if is_scrollable_selector?(selectors, single)
        @scroll_orientation = :vertical

        if !params[:top].nil? || !params[:bottom].nil? || !params[:right].nil? || !params[:left].nil?
          @scroll_deadzone = {}
          @scroll_deadzone[:top] = params[:top].to_f unless params[:top].nil?
          @scroll_deadzone[:bottom] = params[:bottom].to_f unless params[:bottom].nil?
          @scroll_deadzone[:right] = params[:right].to_f unless params[:right].nil?
          @scroll_deadzone[:left] = params[:left].to_f unless params[:left].nil?
        end

        params[:scrollable_locator] = self.dup
      end

      @scrollable_locator = params[:scrollable_locator] if params[:scrollable_locator]
    end


    def strategy_and_selector
      if @can_use_id_strategy
        return FIND_STRATEGY_NAME, @can_use_id_strategy
      end
      [FIND_STRATEGY_XPATH, @xpath_selector]
    end


    # @return [Locator] existing locator element
    def add_child_selector(params)
      params, selectors = extract_selectors_from_params(params)
      single = params[:single]
      raise "Cannot add child selector to Array" if single && !@single

      locator = self.dup
      add_xpath_child_selectors(locator, selectors, single)
      if is_scrollable_selector?(selectors, single)
        locator.scrollable_locator.scroll_orientation = :vertical
        locator.scrollable_locator = self.dup
      end

      locator.last_selector_adjacent = false
      locator
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
testa_appium_driver-0.1.3 lib/testa_appium_driver/ios/locator.rb
testa_appium_driver-0.1.2 lib/testa_appium_driver/ios/locator.rb
testa_appium_driver-0.1.1 lib/testa_appium_driver/ios/locator.rb