def on_page(page_class, params={:using_params => {}}, visit=false, &block)
      page_class = class_from_string(page_class) if page_class.is_a? String
      return super(page_class, params, visit, &block) unless page_class.ancestors.include? PageObject
      merged = page_class.params.merge(params[:using_params])
      page_class.instance_variable_set("@merged_params", merged) unless merged.empty?
      @current_page = page_class.new(@browser, visit)
      block.call @current_page if block
      @current_page
    end
def on_page(page_class, params={:using_params => {}}, visit=false, &block)
      page_class = class_from_string(page_class) if page_class.is_a? String
      return super(page_class, params, visit, &block) unless page_class.ancestors.include? PageObject
      merged = page_class.params.merge(params[:using_params])
      page_class.instance_variable_set("@merged_params", merged) unless merged.empty?
      @current_page = page_class.new(@browser, visit)
      block.call @current_page if block
      @current_page
    end
Create a page object.

 @param [PageObject, String]  a class that has included the PageObject module or a string containing the name of the class
 @param Hash values that is pass through to page class a
 available in the @params instance variable.
 @param [Boolean]  a boolean indicating if the page should be visited?  default is false.
 @param [block]  an optional block to be called
 @return [PageObject] the newly created page object