module PageObject::LocatorGenerator

Constants

ADVANCED_ELEMENTS
BASIC_ELEMENTS

Public Class Methods

generate_locators(target) click to toggle source
# File lib/page-object/locator_generator.rb, line 106
def self.generate_locators(target)
  ADVANCED_ELEMENTS.each do |tag|
    target.send(:define_method, "#{tag.to_s}_element") do |*identifier|
      @platform.send "#{tag.to_s}_for", locator(identifier)
    end

    target.send(:define_method, "#{tag.to_s}_elements") do |*identifier|
      @platform.send("#{tag.to_s}s_for", identifier[0] ? identifier[0] : {})
    end
  end

  BASIC_ELEMENTS.each do |tag|
    target.send(:define_method, "#{tag.to_s}_element") do |*identifier|
      @platform.send :element_for, tag, locator(identifier)
    end

    target.send(:define_method, "#{tag.to_s}_elements") do |*identifier|
      @platform.send(:elements_for, tag, identifier[0] ? identifier[0] : {})
    end
  end
end