class AutomationObject::Driver::NokogiriAdapter::Session

Class for creating/maintaining XML session Trying to replicate some functionality of Selenium like multiple windows, etc…

Public Class Methods

new() click to toggle source
# File lib/automation_object/driver/nokogiri_adapter/session.rb, line 12
def initialize
  @windows = [Window.new]
  @position = 0 # Position
end

Public Instance Methods

back() click to toggle source
# File lib/automation_object/driver/nokogiri_adapter/session.rb, line 65
def back
  return if @windows[@position].nil?
  @windows[@position].back
end
close() click to toggle source
# File lib/automation_object/driver/nokogiri_adapter/session.rb, line 80
def close
  # Reset session if only one window
  quit if @windows.length == 1

  @windows.delete_at(@position)
  @position -= 1 if @position.positive?
end
current_url() click to toggle source

@return [String] current URL

# File lib/automation_object/driver/nokogiri_adapter/session.rb, line 34
def current_url
  return nil if @windows[@position].nil?
  @windows[@position].current_url
end
forward() click to toggle source
# File lib/automation_object/driver/nokogiri_adapter/session.rb, line 70
def forward
  return if @windows[@position].nil?
  @windows[@position].forward
end
quit() click to toggle source

Just reset the session

# File lib/automation_object/driver/nokogiri_adapter/session.rb, line 89
def quit
  @windows = [Window.new]
end
refresh() click to toggle source
# File lib/automation_object/driver/nokogiri_adapter/session.rb, line 75
def refresh
  return if @windows[@position].nil?
  @windows[@position].refresh
end
request(type, url, params = {}, blank = false) click to toggle source

Request url, will set xml to current window handle @param type [Symbol] request type @param url [String] url @param params [Hash<String:String>] params @param blank [Boolean] new window @return [void]

# File lib/automation_object/driver/nokogiri_adapter/session.rb, line 56
def request(type, url, params = {}, blank = false)
  if blank
    @windows.push(Window.new)
    @position = @windows.length - 1
  end

  @windows[@position].request(type, url, params)
end
window_handle() click to toggle source

@return [String] current window handle

# File lib/automation_object/driver/nokogiri_adapter/session.rb, line 28
def window_handle
  return nil if @windows[@position].nil?
  @windows[@position].handle
end
window_handle=(handle_value) click to toggle source

Switch window handles @param handle_value [String] handle value of window to switch to

# File lib/automation_object/driver/nokogiri_adapter/session.rb, line 41
def window_handle=(handle_value)
  raise NoSuchWindowError unless window_handles.include?(handle_value)

  @position = 0
  @windows.each_with_index do |index, window|
    @position = index if window.handle == handle_value
  end
end
window_handles() click to toggle source

@return [Array<String>] window handles

# File lib/automation_object/driver/nokogiri_adapter/session.rb, line 23
def window_handles
  @windows.map(&:handle)
end
xml() click to toggle source
# File lib/automation_object/driver/nokogiri_adapter/session.rb, line 17
def xml
  return nil if @windows[@position].nil?
  @windows[@position].xml
end