Sha256: 9d1e6045947eb48d6c645c861d97d1120b3509896bacecbef249dcd06ce5fab0

Contents?: true

Size: 947 Bytes

Versions: 3

Compression:

Stored size: 947 Bytes

Contents

module Elements

  def self.included(base)
    base.extend FindElements
  end

  module FindElements

    # @method element(element_name, locator, error=false)
    # @param element_name [:Symbol]
    # @param locator [Hash]
    # @param error [Boolean] - default false
    # @return [Selenium::WebDriver::Element]
    # @return [empty Array] -- if element not found and error parameter = false

    def elements(element_name, locator, error=false)
      send(:define_method, element_name) do
        wait = Selenium::WebDriver::Wait.new(:timeout => 0.5)
        begin
          wait.until { !@driver.find_elements(locator).empty? }
          @driver.find_elements(locator)
        rescue Selenium::WebDriver::Error::TimeOutError
          if error
            raise "Could not find any elements using '#{locator.first.key}=#{locator.first.key}' strategy"
          else
            return []
          end
        end
      end
    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
web-object-0.4 lib/web-object/elements.rb
web-object-0.3 lib/web-object/elements.rb
web-object-0.2 lib/web-object/elements.rb