class AutomationObject::Driver::NokogiriAdapter::Window
Window
class
Attributes
handle[RW]
xml[RW]
Public Class Methods
new()
click to toggle source
# File lib/automation_object/driver/nokogiri_adapter/window.rb, line 16 def initialize self.handle = SecureRandom.hex(16) # Use to control history @position = 0 @history = [] end
Public Instance Methods
back()
click to toggle source
@return [void]
# File lib/automation_object/driver/nokogiri_adapter/window.rb, line 41 def back raise UnableToNavigateBackward if @position.zero? @position -= 1 make_request(@history.at(@position)) end
current_url()
click to toggle source
@return [String]
# File lib/automation_object/driver/nokogiri_adapter/window.rb, line 35 def current_url request = @history.at(@position) !request.nil? ? request.url : nil end
forward()
click to toggle source
@return [void]
# File lib/automation_object/driver/nokogiri_adapter/window.rb, line 49 def forward raise UnableToNavigateForward if @position >= @history.length - 2 @position += 1 make_request(@history.at(@position)) end
refresh()
click to toggle source
@return [void]
# File lib/automation_object/driver/nokogiri_adapter/window.rb, line 57 def refresh make_request(@history.at(@position)) end
request(type, url, params = {})
click to toggle source
Get url, will set xml to current window handle @param url [String] url to get xml for @return [Object] nokogiri object
# File lib/automation_object/driver/nokogiri_adapter/window.rb, line 27 def request(type, url, params = {}) request = Request.new(type, url, params) make_request(request) update_history(request) end
Protected Instance Methods
make_request(request)
click to toggle source
Request
url, will set xml to current window handle @param request [Request] request object @return [void]
# File lib/automation_object/driver/nokogiri_adapter/window.rb, line 72 def make_request(request) parsed_url = request.url raise ArgumentError, "Expecting get argument url to be a valid_url?, got #{request.url}" if !parsed_url.valid_url? && current_url.nil? parsed_url = current_url.join_url(request.url) if !request.url.valid_url? && !current_url.nil? client_resource = RestClient::Resource.new(parsed_url, ssl_version: 'SSLv23_client') response = client_resource.send(request.type, params: request.params) self.xml = Nokogiri::HTML.parse(response) end
update_history(request)
click to toggle source
@return [void]
# File lib/automation_object/driver/nokogiri_adapter/window.rb, line 64 def update_history(request) @history.push(request) @position = @history.length - 1 end