class AutomationObject::Driver::NokogiriAdapter::Driver

Driver for Nokogiri Conforms to interface and provides Selenium type functionality for XML only functionality

Attributes

session[RW]

@return [AutomationObject::Driver::NokogiriAdapter::Session]

Public Class Methods

new(*_args) click to toggle source
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 17
def initialize(*_args)
  self.session = Session.new
end

Public Instance Methods

accept_prompt() click to toggle source

Accept prompt either in browser or mobile

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 95
def accept_prompt; end
back() click to toggle source
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 40
def back
  session.back
end
browser?() click to toggle source

Check if browser, more useful for Appium but can be generic here @return [Boolean] whether or not browser is being used

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 102
def browser?
  true
end
close() click to toggle source

Close current window @return [void]

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 36
def close
  session.close
end
dismiss_prompt() click to toggle source

Dismiss the prompt

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 98
def dismiss_prompt; end
document_complete?() click to toggle source

Run script in browser to check if document in JS is complete @return [Boolean] document is complete

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 126
def document_complete?
  true
end
execute_script(script) click to toggle source

@param script [String] JS to run @return [Object, nil]

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 132
def execute_script(script); end
exists?(selector_type, selector_path) click to toggle source

@param selector_type [Symbol] selector type, :css, :xpath, etc… @param selector_path [String] path to element @return [Boolean] element exists?

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 65
def exists?(selector_type, selector_path)
  elements = get_elements(selector_type, selector_path)
  !elements.empty? ? true : false
end
find_element(selector_type, selector_path) click to toggle source

@param selector_type [Symbol] selector type, :css, :xpath, etc… @param selector_path [String] path to element @return [AutomationObject::Driver::Element] element

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 73
def find_element(selector_type, selector_path)
  elements = get_elements(selector_type, selector_path)
  raise NoSuchElementError if elements.length.zero?

  AutomationObject::Driver::Element.new(
    AutomationObject::Driver::NokogiriAdapter::Element.new(self, elements.first)
  )
end
find_elements(selector_type, selector_path) click to toggle source

@param selector_type [Symbol] selector type, :css, :xpath, etc… @param selector_path [String] path to element @return [Array<AutomationObject::Driver::Element>] elements

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 85
def find_elements(selector_type, selector_path)
  elements = get_elements(selector_type, selector_path)
  elements.map do |element|
    AutomationObject::Driver::Element.new(
      AutomationObject::Driver::NokogiriAdapter::Element.new(self, element)
    )
  end
end
forward() click to toggle source
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 44
def forward
  session.forward
end
get(url) click to toggle source

Navigates current window to a given url @param url [String] navigate to the following url @return [void]

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 24
def get(url)
  session.request(:get, url)
end
inner_window_height() click to toggle source

@return [Float] inner window height

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 140
def inner_window_height
  0
end
quit() click to toggle source

Destroy the driver

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 53
def quit
  session.quit
end
refresh() click to toggle source
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 48
def refresh
  session.refresh
end
scroll_position() click to toggle source

@return [Point] x,y scroll position

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 135
def scroll_position
  Point.new(x: 0, y: 0)
end
title() click to toggle source

Get the title of the document @return [String]

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 30
def title
  find_element(:xpath, '//title').text
end
wait(timeout = nil) click to toggle source

Set timeout wait @param timeout [Integer] the timeout in seconds @return [void]

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 60
def wait(timeout = nil); end
window_handle() click to toggle source

Current window handle @return [String] handle id

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 114
def window_handle
  session.window_handle
end
window_handle=(handle_value) click to toggle source

Set current window handle to, will switch windows @param handle_value [String] window handle value

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 120
def window_handle=(handle_value)
  session.window_handle = handle_value
end
window_handles() click to toggle source

Window Handles @return [Array<String>] array of window handle ids

# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 108
def window_handles
  session.window_handles
end

Private Instance Methods

get_elements(selector_type, selector_path) click to toggle source
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 146
def get_elements(selector_type, selector_path)
  case selector_type
  when :xpath
    elements = session.xml.xpath(selector_path)
  when :css
    elements = session.xml.css(selector_path)
  else
    raise ArgumentError, "#{selector_type} selector type not implemented. Only :css, :xpath"
  end

  elements
end