Sha256: 08cd4e2ca83ff9e609a47292cfb2606705bbdda723db042bf45845c824df6016

Contents?: true

Size: 1.51 KB

Versions: 10

Compression:

Stored size: 1.51 KB

Contents

module MiniAutobot
  module PageObjects
    module Widgets

      # A widget represents a portion (an element) of a page that is repeated
      # or reproduced multiple times, either on the same page, or across multiple
      # page objects or page modules.
      class Base
        include Utils::Castable
        include Utils::PageObjectHelper
        include Utils::OverlayAndWidgetHelper
        extend ElementContainer

        attr_reader :driver, :element, :page

        def initialize(page, element)
          @driver = page.driver
          @page = page
          @element = element
        end

        ## for widgets that include Utils::OverlayAndWidgetHelper
        def page_object
          @page
        end

        def find_first(how, what)
          element.find_element(how, what)
        end

        def find_all(how, what)
          element.all(how, what)
        end

        # Explicitly wait for a certain condition to be true:
        #   wait.until { driver.find_element(:css, 'body.tmpl-srp') }
        # when timeout is not specified, default timeout 5 sec will be used
        # when timeout is larger than 15, max timeout 15 sec will be used
        def wait(opts = {})
          if !opts[:timeout].nil? && opts[:timeout] > 15
            puts "WARNING: #{opts[:timeout]} sec timeout is NOT supported by wait method,
                max timeout 15 sec will be used instead"
            opts[:timeout] = 15
          end
          Selenium::WebDriver::Wait.new(opts)
        end

      end

    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
mini_autobot-1.1.7 lib/mini_autobot/page_objects/widgets/base.rb
mini_autobot-1.1.6 lib/mini_autobot/page_objects/widgets/base.rb
mini_autobot-1.1.5 lib/mini_autobot/page_objects/widgets/base.rb
mini_autobot-1.1.4 lib/mini_autobot/page_objects/widgets/base.rb
mini_autobot-1.1.3 lib/mini_autobot/page_objects/widgets/base.rb
mini_autobot-1.1.2 lib/mini_autobot/page_objects/widgets/base.rb
mini_autobot-1.1.1 lib/mini_autobot/page_objects/widgets/base.rb
mini_autobot-1.1.0 lib/mini_autobot/page_objects/widgets/base.rb
mini_autobot-1.0.0 lib/mini_autobot/page_objects/widgets/base.rb
mini_autobot-0.8.0 lib/mini_autobot/page_objects/widgets/base.rb