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