class AutomationObject::Driver::NokogiriAdapter::Driver
Driver
for Nokogiri Conforms to interface and provides Selenium type functionality for XML only functionality
Attributes
@return [AutomationObject::Driver::NokogiriAdapter::Session]
Public Class Methods
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 17 def initialize(*_args) self.session = Session.new end
Public Instance Methods
Accept prompt either in browser or mobile
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 95 def accept_prompt; end
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 40 def back session.back end
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 current window @return [void]
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 36 def close session.close end
Dismiss the prompt
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 98 def dismiss_prompt; end
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
@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
@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
@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
@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
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 44 def forward session.forward end
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
@return [Float] inner window height
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 140 def inner_window_height 0 end
Destroy the driver
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 53 def quit session.quit end
# File lib/automation_object/driver/nokogiri_adapter/driver.rb, line 48 def refresh session.refresh end
@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
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
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
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
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 @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
# 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