Method: PageObject::LocatorGenerator.generate_locators

Defined in:
lib/page-object/locator_generator.rb

.generate_locators(target) ⇒ Object



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/page-object/locator_generator.rb', line 108

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