Class: Selenium::WebDriver::Edge::Bridge Private

Inherits:
Remote::W3CBridge show all
Defined in:
lib/selenium/webdriver/edge/bridge.rb

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Constant Summary

Constants inherited from Remote::W3CBridge

Remote::W3CBridge::COMMANDS, Remote::W3CBridge::QUIT_ERRORS

Instance Attribute Summary

Attributes inherited from Remote::W3CBridge

#context, #file_detector, #http

Instance Method Summary collapse

Methods inherited from Remote::W3CBridge

#accept_alert, #action, #active_element, #add_cookie, #alert=, #alert_text, #clear_element, #clear_local_storage, #clear_session_storage, #click_element, #close, #cookie, #cookies, #create_session, #delete_all_cookies, #delete_cookie, #dismiss_alert, #drag_element, #element_attribute, #element_displayed?, #element_enabled?, #element_location, #element_location_once_scrolled_into_view, #element_property, #element_selected?, #element_size, #element_tag_name, #element_text, #element_value, #element_value_of_css_property, #execute_async_script, #execute_script, #find_element_by, #find_elements_by, #full_screen_window, #get, #go_back, #go_forward, #implicit_wait_timeout=, #keyboard, #local_storage_item, #local_storage_keys, #local_storage_size, #location, #mouse, #network_connection, #network_connection=, #options, #page_source, #refresh, #release_actions, #remove_local_storage_item, #remove_session_storage_item, #screen_orientation, #screen_orientation=, #screenshot, #script_timeout=, #send_actions, #send_keys_to_element, #session_id, #session_storage_item, #session_storage_keys, #session_storage_size, #set_location, #status, #submit_element, #switch_to_default_content, #switch_to_frame, #switch_to_parent_frame, #switch_to_window, #timeout, #title, #touch_double_tap, #touch_down, #touch_element_flick, #touch_flick, #touch_long_press, #touch_move, #touch_scroll, #touch_single_tap, #touch_up, #url, #window_handles

Methods included from BridgeHelper

#element_id_from, #parse_cookie_string, #unwrap_script_result

Constructor Details

#initialize(opts = {}) ⇒ Bridge

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Bridge.



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/selenium/webdriver/edge/bridge.rb', line 28

def initialize(opts = {})
  port = opts.delete(:port) || Service::DEFAULT_PORT
  service_args = opts.delete(:service_args) || {}

  unless opts.key?(:url)
    driver_path = opts.delete(:driver_path) || Edge.driver_path(false)
    @service = Service.new(driver_path, port, *extract_service_args(service_args))
    @service.host = 'localhost' if @service.host == '127.0.0.1'
    @service.start
    opts[:url] = @service.uri
  end

  opts[:desired_capabilities] ||= Remote::W3CCapabilities.edge

  super(opts)
end

Instance Method Details

#browserObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



45
46
47
# File 'lib/selenium/webdriver/edge/bridge.rb', line 45

def browser
  :edge
end

#capabilitiesObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



67
68
69
# File 'lib/selenium/webdriver/edge/bridge.rb', line 67

def capabilities
  @capabilities ||= Remote::Capabilities.edge
end

#commands(command) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/selenium/webdriver/edge/bridge.rb', line 53

def commands(command)
  unsupported = i[execute_script execute_async_script submit_element double_click
   mouse_down mouse_up mouse_move_to click
   send_keys_to_active_element get_window_handles get_current_window_handle
   get_window_size set_window_size get_window_position set_window_position
   maximize_window get_alert_text accept_alert dismiss_alert]
  if unsupported.include? command
    Remote::Bridge::COMMANDS[command]
  else
    super
  end

end

#driver_extensionsObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



49
50
51
# File 'lib/selenium/webdriver/edge/bridge.rb', line 49

def driver_extensions
  [DriverExtensions::TakesScreenshot]
end

#maximize_window(handle = :current) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



108
109
110
# File 'lib/selenium/webdriver/edge/bridge.rb', line 108

def maximize_window(handle = :current)
  execute :maximize_window, window_handle: handle
end

#quitObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



71
72
73
74
75
# File 'lib/selenium/webdriver/edge/bridge.rb', line 71

def quit
  super
ensure
  @service.stop if @service
end

#reposition_window(x, y, handle = :current) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



103
104
105
106
# File 'lib/selenium/webdriver/edge/bridge.rb', line 103

def reposition_window(x, y, handle = :current)
  execute :set_window_position, {window_handle: handle},
          {x: x, y: y}
end

#resize_window(width, height, handle = :current) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



91
92
93
94
95
# File 'lib/selenium/webdriver/edge/bridge.rb', line 91

def resize_window(width, height, handle = :current)
  execute :set_window_size, {window_handle: handle},
          {width: width,
           height: height}
end

#send_keys_to_active_element(key) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



77
78
79
# File 'lib/selenium/webdriver/edge/bridge.rb', line 77

def send_keys_to_active_element(key)
  execute :send_keys_to_active_element, {}, {value: key}
end

#window_handleObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



81
82
83
# File 'lib/selenium/webdriver/edge/bridge.rb', line 81

def window_handle
  execute :get_current_window_handle
end

#window_position(handle = :current) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



97
98
99
100
101
# File 'lib/selenium/webdriver/edge/bridge.rb', line 97

def window_position(handle = :current)
  data = execute :get_window_position, window_handle: handle

  Point.new data['x'], data['y']
end

#window_size(handle = :current) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



85
86
87
88
89
# File 'lib/selenium/webdriver/edge/bridge.rb', line 85

def window_size(handle = :current)
  data = execute :get_window_size, window_handle: handle

  Dimension.new data['width'], data['height']
end