def button(name, identifier={:index => 0}, &block)
      standard_methods(name, identifier, 'button_for', &block)
      define_method(name) do
        return platform.click_button_for identifier.clone unless block_given?
        self.send("#{name}_element").click
      end
    end
def button(name, identifier={:index => 0}, &block)
      standard_methods(name, identifier, 'button_for', &block)
      define_method(name) do
        return platform.click_button_for identifier.clone unless block_given?
        self.send("#{name}_element").click
      end
    end
adds three methods - one to click a button, another to
 return the button element, and another to check the button's existence.

 @example
   button(:purchase, :id => 'purchase')
   # will generate 'purchase', 'purchase_element', and 'purchase?' methods

 @param [Symbol] the name used for the generated methods
 @param [Hash] identifier how we find a button.
 @param optional block to be invoked when element method is called