Class: AutomationObject::Driver::NokogiriAdapter::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/automation_object/driver/nokogiri_adapter/session.rb

Overview

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

Instance Method Summary collapse

Constructor Details

#initializeSession

Returns a new instance of Session



12
13
14
15
# File 'lib/automation_object/driver/nokogiri_adapter/session.rb', line 12

def initialize
  @windows = [Window.new]
  @position = 0 # Position
end

Instance Method Details

#backObject



65
66
67
68
# File 'lib/automation_object/driver/nokogiri_adapter/session.rb', line 65

def back
  return if @windows[@position].nil?
  @windows[@position].back
end

#closeObject



80
81
82
83
84
85
86
# 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_urlString

Returns current URL

Returns:



34
35
36
37
# 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

#forwardObject



70
71
72
73
# File 'lib/automation_object/driver/nokogiri_adapter/session.rb', line 70

def forward
  return if @windows[@position].nil?
  @windows[@position].forward
end

#quitObject

Just reset the session



89
90
91
# File 'lib/automation_object/driver/nokogiri_adapter/session.rb', line 89

def quit
  @windows = [Window.new]
end

#refreshObject



75
76
77
78
# 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) ⇒ void

This method returns an undefined value.

Request url, will set xml to current window handle

Parameters:

  • type (Symbol)

    request type

  • url (String)

    url

  • params (Hash<String:String>) (defaults to: {})

    params

  • blank (Boolean) (defaults to: false)

    new window



56
57
58
59
60
61
62
63
# 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_handleString

Returns current window handle

Returns:

  • (String)

    current window handle



28
29
30
31
# 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) ⇒ Object

Switch window handles

Parameters:

  • handle_value (String)

    handle value of window to switch to

Raises:



41
42
43
44
45
46
47
48
# 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_handlesArray<String>

Returns window handles

Returns:

  • (Array<String>)

    window handles



23
24
25
# File 'lib/automation_object/driver/nokogiri_adapter/session.rb', line 23

def window_handles
  @windows.map(&:handle)
end

#xmlObject



17
18
19
20
# File 'lib/automation_object/driver/nokogiri_adapter/session.rb', line 17

def xml
  return nil if @windows[@position].nil?
  @windows[@position].xml
end