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

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

Overview

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*_args) ⇒ Driver

Returns a new instance of Driver



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

def initialize(*_args)
  self.session = Session.new
end

Instance Attribute Details

#sessionAutomationObject::Driver::NokogiriAdapter::Session



15
16
17
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 15

def session
  @session
end

Instance Method Details

#accept_promptObject

Accept prompt either in browser or mobile



95
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 95

def accept_prompt; end

#backObject



40
41
42
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 40

def back
  session.back
end

#browser?Boolean

Check if browser, more useful for Appium but can be generic here

Returns:

  • (Boolean)

    whether or not browser is being used



102
103
104
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 102

def browser?
  true
end

#closevoid

This method returns an undefined value.

Close current window



36
37
38
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 36

def close
  session.close
end

#dismiss_promptObject

Dismiss the prompt



98
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 98

def dismiss_prompt; end

#document_complete?Boolean

Run script in browser to check if document in JS is complete

Returns:

  • (Boolean)

    document is complete



126
127
128
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 126

def document_complete?
  true
end

#execute_script(script) ⇒ Object?

Parameters:

  • script (String)

    JS to run

Returns:

  • (Object, nil)


132
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 132

def execute_script(script); end

#exists?(selector_type, selector_path) ⇒ Boolean

Returns element exists?

Parameters:

  • selector_type (Symbol)

    selector type, :css, :xpath, etc...

  • selector_path (String)

    path to element

Returns:

  • (Boolean)

    element exists?



65
66
67
68
# 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) ⇒ AutomationObject::Driver::Element

Returns element

Parameters:

  • selector_type (Symbol)

    selector type, :css, :xpath, etc...

  • selector_path (String)

    path to element

Returns:

Raises:



73
74
75
76
77
78
79
80
# 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) ⇒ Array<AutomationObject::Driver::Element>

Returns elements

Parameters:

  • selector_type (Symbol)

    selector type, :css, :xpath, etc...

  • selector_path (String)

    path to element

Returns:



85
86
87
88
89
90
91
92
# 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

#forwardObject



44
45
46
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 44

def forward
  session.forward
end

#get(url) ⇒ void

This method returns an undefined value.

Navigates current window to a given url

Parameters:

  • url (String)

    navigate to the following url



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

def get(url)
  session.request(:get, url)
end

#inner_window_heightFloat

Returns inner window height

Returns:

  • (Float)

    inner window height



140
141
142
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 140

def inner_window_height
  0
end

#quitObject

Destroy the driver



53
54
55
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 53

def quit
  session.quit
end

#refreshObject



48
49
50
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 48

def refresh
  session.refresh
end

#scroll_positionPoint

Returns x,y scroll position

Returns:

  • (Point)

    x,y scroll position



135
136
137
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 135

def scroll_position
  Point.new(x: 0, y: 0)
end

#titleString

Get the title of the document

Returns:



30
31
32
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 30

def title
  find_element(:xpath, '//title').text
end

#wait(timeout = nil) ⇒ void

This method returns an undefined value.

Set timeout wait

Parameters:

  • timeout (Integer) (defaults to: nil)

    the timeout in seconds



60
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 60

def wait(timeout = nil); end

#window_handleString

Current window handle

Returns:



114
115
116
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 114

def window_handle
  session.window_handle
end

#window_handle=(handle_value) ⇒ Object

Set current window handle to, will switch windows

Parameters:

  • handle_value (String)

    window handle value



120
121
122
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 120

def window_handle=(handle_value)
  session.window_handle = handle_value
end

#window_handlesArray<String>

Window Handles

Returns:

  • (Array<String>)

    array of window handle ids



108
109
110
# File 'lib/automation_object/driver/nokogiri_adapter/driver.rb', line 108

def window_handles
  session.window_handles
end