Class: Selenium::WebDriver::Remote::Bridge Private

Inherits:
Object
  • Object
show all
Includes:
BridgeHelper
Defined in:
lib/selenium/webdriver/remote/bridge.rb,
lib/selenium/webdriver/remote/commands.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 collapse

QUIT_ERRORS =

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

[IOError]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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.

Initializes the bridge with the given server URL.

Parameters:

  • url (String)

    url for the remote server

  • http_client (Object)

    an HTTP client instance that implements the same protocol as Http::Default

  • desired_capabilities (Capabilities)

    an instance of Remote::Capabilities describing the capabilities you want



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/selenium/webdriver/remote/bridge.rb', line 43

def initialize(opts = {})
  opts = opts.dup

  http_client          = opts.delete(:http_client) { Http::Default.new }
  desired_capabilities = opts.delete(:desired_capabilities) { Capabilities.firefox }
  url                  = opts.delete(:url) { "http://#{Platform.localhost}:4444/wd/hub" }

  unless opts.empty?
    raise ArgumentError, "unknown option#{'s' if opts.size != 1}: #{opts.inspect}"
  end

  if desired_capabilities.kind_of?(Symbol)
    unless Capabilities.respond_to?(desired_capabilities)
      raise Error::WebDriverError, "invalid desired capability: #{desired_capabilities.inspect}"
    end

    desired_capabilities = Capabilities.send(desired_capabilities)
  end

  uri = url.kind_of?(URI) ? url : URI.parse(url)
  uri.path += "/" unless uri.path =~ /\/$/

  http_client.server_url = uri

  @http          = http_client
  @capabilities  = create_session(desired_capabilities)

  @file_detector = nil
end

Instance Attribute Details

#capabilitiesObject (readonly)

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.



33
34
35
# File 'lib/selenium/webdriver/remote/bridge.rb', line 33

def capabilities
  @capabilities
end

#contextObject

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.



32
33
34
# File 'lib/selenium/webdriver/remote/bridge.rb', line 32

def context
  @context
end

#file_detectorObject

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.



32
33
34
# File 'lib/selenium/webdriver/remote/bridge.rb', line 32

def file_detector
  @file_detector
end

#httpObject

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.



32
33
34
# File 'lib/selenium/webdriver/remote/bridge.rb', line 32

def http
  @http
end

Class Method Details

.command(name, verb, url) ⇒ 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.

Defines a wrapper method for a command, which ultimately calls #execute.

Parameters:

  • name (Symbol)

    name of the resulting method

  • url (String)

    a URL template, which can include some arguments, much like the definitions on the server. the :session_id parameter is implicitly handled, but the remainder will become required method arguments.

  • verb (Symbol)

    the appropriate http verb, such as :get, :post, or :delete



28
29
30
# File 'lib/selenium/webdriver/remote/bridge.rb', line 28

def self.command(name, verb, url)
  COMMANDS[name] = [verb, url.freeze]
end

Instance Method Details

#acceptAlertObject

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.



139
140
141
# File 'lib/selenium/webdriver/remote/bridge.rb', line 139

def acceptAlert
  execute :acceptAlert
end

#addCookie(cookie) ⇒ 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.

cookies



354
355
356
# File 'lib/selenium/webdriver/remote/bridge.rb', line 354

def addCookie(cookie)
  execute :addCookie, {}, :cookie => cookie
end

#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.



73
74
75
76
77
78
# File 'lib/selenium/webdriver/remote/bridge.rb', line 73

def browser
  @browser ||= (
    name = @capabilities.browser_name
    name ? name.gsub(" ", "_").to_sym : 'unknown'
  )
end

#clearElement(element) ⇒ 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.



428
429
430
# File 'lib/selenium/webdriver/remote/bridge.rb', line 428

def clearElement(element)
  execute :clearElement, :id => element
end

#clearLocalStorageObject

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.



282
283
284
# File 'lib/selenium/webdriver/remote/bridge.rb', line 282

def clearLocalStorage
  execute :clearLocalStorage
end

#clearSessionStorageObject

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.



306
307
308
# File 'lib/selenium/webdriver/remote/bridge.rb', line 306

def clearSessionStorage
  execute :clearSessionStorage
end

#clickObject

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.



378
379
380
# File 'lib/selenium/webdriver/remote/bridge.rb', line 378

def click
  execute :click, {}, :button => 0
end

#clickElement(element) ⇒ 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.

actions



374
375
376
# File 'lib/selenium/webdriver/remote/bridge.rb', line 374

def clickElement(element)
  execute :clickElement, :id => element
end

#closeObject

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.



211
212
213
# File 'lib/selenium/webdriver/remote/bridge.rb', line 211

def close
  execute :close
end

#contextClickObject

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.



386
387
388
# File 'lib/selenium/webdriver/remote/bridge.rb', line 386

def contextClick
  execute :click, {}, :button => 2
end

#create_session(desired_capabilities) ⇒ 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.



100
101
102
103
104
105
# File 'lib/selenium/webdriver/remote/bridge.rb', line 100

def create_session(desired_capabilities)
  resp = raw_execute :newSession, {}, :desiredCapabilities => desired_capabilities
  @session_id = resp['sessionId'] or raise Error::WebDriverError, 'no sessionId in returned payload'

  Capabilities.json_create resp['value']
end

#deleteAllCookiesObject

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.



366
367
368
# File 'lib/selenium/webdriver/remote/bridge.rb', line 366

def deleteAllCookies
  execute :deleteAllCookies
end

#deleteCookie(name) ⇒ 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.



358
359
360
# File 'lib/selenium/webdriver/remote/bridge.rb', line 358

def deleteCookie(name)
  execute :deleteCookie, :name => name
end

#dismissAlertObject

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.



143
144
145
# File 'lib/selenium/webdriver/remote/bridge.rb', line 143

def dismissAlert
  execute :dismissAlert
end

#doubleClickObject

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.



382
383
384
# File 'lib/selenium/webdriver/remote/bridge.rb', line 382

def doubleClick
  execute :doubleClick
end

#dragElement(element, right_by, down_by) ⇒ 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.



437
438
439
# File 'lib/selenium/webdriver/remote/bridge.rb', line 437

def dragElement(element, right_by, down_by)
  execute :dragElement, {:id => element}, :x => right_by, :y => down_by
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.



80
81
82
83
84
85
86
87
88
89
90
# File 'lib/selenium/webdriver/remote/bridge.rb', line 80

def driver_extensions
  [
    DriverExtensions::HasInputDevices,
    DriverExtensions::UploadsFiles,
    DriverExtensions::TakesScreenshot,
    DriverExtensions::HasSessionId,
    DriverExtensions::Rotatable,
    DriverExtensions::HasTouchScreen,
    DriverExtensions::HasRemoteStatus
  ]
end

#elementEquals(element, other) ⇒ 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.



565
566
567
568
569
570
571
# File 'lib/selenium/webdriver/remote/bridge.rb', line 565

def elementEquals(element, other)
  if element.ref == other.ref
    true
  else
    execute :elementEquals, :id => element.ref, :other => other.ref
  end
end

#executeAsyncScript(script, *args) ⇒ 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.



343
344
345
346
347
348
# File 'lib/selenium/webdriver/remote/bridge.rb', line 343

def executeAsyncScript(script, *args)
  assert_javascript_enabled

  result = execute :executeAsyncScript, {}, :script => script, :args => args
  unwrap_script_result result
end

#executeScript(script, *args) ⇒ 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.

javascript execution



336
337
338
339
340
341
# File 'lib/selenium/webdriver/remote/bridge.rb', line 336

def executeScript(script, *args)
  assert_javascript_enabled

  result = execute :executeScript, {}, :script => script, :args => args
  unwrap_script_result result
end

#find_element_by(how, what, parent = nil) ⇒ 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.



582
583
584
585
586
587
588
589
590
# File 'lib/selenium/webdriver/remote/bridge.rb', line 582

def find_element_by(how, what, parent = nil)
  if parent
    id = execute :findChildElement, {:id => parent}, {:using => how, :value => what}
  else
    id = execute :findElement, {}, {:using => how, :value => what}
  end

  Element.new self, element_id_from(id)
end

#find_elements_by(how, what, parent = nil) ⇒ 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.



592
593
594
595
596
597
598
599
600
# File 'lib/selenium/webdriver/remote/bridge.rb', line 592

def find_elements_by(how, what, parent = nil)
  if parent
    ids = execute :findChildElements, {:id => parent}, {:using => how, :value => what}
  else
    ids = execute :findElements, {}, {:using => how, :value => what}
  end

  ids.map { |id| Element.new self, element_id_from(id) }
end

#get(url) ⇒ 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.



111
112
113
# File 'lib/selenium/webdriver/remote/bridge.rb', line 111

def get(url)
  execute :get, {}, :url => url
end

#getActiveElementObject Also known as: switchToActiveElement

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.

finding elements



577
578
579
# File 'lib/selenium/webdriver/remote/bridge.rb', line 577

def getActiveElement
  Element.new self, element_id_from(execute(:getActiveElement))
end

#getAlertObject

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.

alerts



135
136
137
# File 'lib/selenium/webdriver/remote/bridge.rb', line 135

def getAlert
  execute :getAlert
end

#getAlertTextObject

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.



151
152
153
# File 'lib/selenium/webdriver/remote/bridge.rb', line 151

def getAlertText
  execute :getAlertText
end

#getAllCookiesObject

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.



362
363
364
# File 'lib/selenium/webdriver/remote/bridge.rb', line 362

def getAllCookies
  execute :getCookies
end

#getAvailableLogTypesObject

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.

logs



499
500
501
502
# File 'lib/selenium/webdriver/remote/bridge.rb', line 499

def getAvailableLogTypes
  types = execute :getAvailableLogTypes
  Array(types).map { |e| e.to_sym }
end

#getCapabilitiesObject

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.



115
116
117
# File 'lib/selenium/webdriver/remote/bridge.rb', line 115

def getCapabilities
  Capabilities.json_create execute(:getCapabilities)
end

#getCurrentUrlObject

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.



167
168
169
# File 'lib/selenium/webdriver/remote/bridge.rb', line 167

def getCurrentUrl
  execute :getCurrentUrl
end

#getCurrentWindowHandleObject

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.



227
228
229
# File 'lib/selenium/webdriver/remote/bridge.rb', line 227

def getCurrentWindowHandle
  execute :getCurrentWindowHandle
end

#getElementAttribute(element, name) ⇒ 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.



520
521
522
# File 'lib/selenium/webdriver/remote/bridge.rb', line 520

def getElementAttribute(element, name)
  execute :getElementAttribute, :id => element, :name => name
end

#getElementLocation(element) ⇒ 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.



532
533
534
535
536
# File 'lib/selenium/webdriver/remote/bridge.rb', line 532

def getElementLocation(element)
  data = execute :getElementLocation, :id => element

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

#getElementLocationOnceScrolledIntoView(element) ⇒ 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.



538
539
540
541
542
# File 'lib/selenium/webdriver/remote/bridge.rb', line 538

def getElementLocationOnceScrolledIntoView(element)
  data = execute :getElementLocationOnceScrolledIntoView, :id => element

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

#getElementSize(element) ⇒ 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.



544
545
546
547
548
# File 'lib/selenium/webdriver/remote/bridge.rb', line 544

def getElementSize(element)
  data = execute :getElementSize, :id => element

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

#getElementTagName(element) ⇒ 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.

element properties



516
517
518
# File 'lib/selenium/webdriver/remote/bridge.rb', line 516

def getElementTagName(element)
  execute :getElementTagName, :id => element
end

#getElementText(element) ⇒ 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.



528
529
530
# File 'lib/selenium/webdriver/remote/bridge.rb', line 528

def getElementText(element)
  execute :getElementText, :id => element
end

#getElementValue(element) ⇒ 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.



524
525
526
# File 'lib/selenium/webdriver/remote/bridge.rb', line 524

def getElementValue(element)
  execute :getElementValue, :id => element
end

#getElementValueOfCssProperty(element, prop) ⇒ 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.



561
562
563
# File 'lib/selenium/webdriver/remote/bridge.rb', line 561

def getElementValueOfCssProperty(element, prop)
  execute :getElementValueOfCssProperty, :id => element, :property_name => prop
end

#getLocalStorageItem(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.

HTML 5



266
267
268
# File 'lib/selenium/webdriver/remote/bridge.rb', line 266

def getLocalStorageItem(key)
  execute :getLocalStorageItem, :key => key
end

#getLocalStorageKeysObject

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.



274
275
276
# File 'lib/selenium/webdriver/remote/bridge.rb', line 274

def getLocalStorageKeys
  execute :getLocalStorageKeys
end

#getLocalStorageSizeObject

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.



286
287
288
# File 'lib/selenium/webdriver/remote/bridge.rb', line 286

def getLocalStorageSize
  execute :getLocalStorageSize
end

#getLocationObject

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.



314
315
316
317
# File 'lib/selenium/webdriver/remote/bridge.rb', line 314

def getLocation
  obj = execute(:getLocation) || {} # android returns null
  Location.new obj['latitude'], obj['longitude'], obj['altitude']
end

#getLog(type) ⇒ 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.



504
505
506
507
508
509
510
# File 'lib/selenium/webdriver/remote/bridge.rb', line 504

def getLog(type)
  data = execute :getLog, {}, :type => type.to_s

  Array(data).map do |l|
    LogEntry.new l.fetch('level'), l.fetch('timestamp'), l.fetch('message')
  end
end

#getPageSourceObject

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.



175
176
177
# File 'lib/selenium/webdriver/remote/bridge.rb', line 175

def getPageSource
  execute :getPageSource
end

#getScreenOrientationObject

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.



491
492
493
# File 'lib/selenium/webdriver/remote/bridge.rb', line 491

def getScreenOrientation
  execute :getScreenOrientation
end

#getScreenshotObject

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.



258
259
260
# File 'lib/selenium/webdriver/remote/bridge.rb', line 258

def getScreenshot
  execute :screenshot
end

#getSessionStorageItem(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.



290
291
292
# File 'lib/selenium/webdriver/remote/bridge.rb', line 290

def getSessionStorageItem(key)
  execute :getSessionStorageItem, :key => key
end

#getSessionStorageKeysObject

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.



298
299
300
# File 'lib/selenium/webdriver/remote/bridge.rb', line 298

def getSessionStorageKeys
  execute :getSessionStorageKeys
end

#getSessionStorageSizeObject

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.



310
311
312
# File 'lib/selenium/webdriver/remote/bridge.rb', line 310

def getSessionStorageSize
  execute :getSessionStorageSize
end

#getTitleObject

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.



171
172
173
# File 'lib/selenium/webdriver/remote/bridge.rb', line 171

def getTitle
  execute :getTitle
end

#getVisibleObject

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.



179
180
181
# File 'lib/selenium/webdriver/remote/bridge.rb', line 179

def getVisible
  execute :getVisible
end

#getWindowHandlesObject

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.

window handling



223
224
225
# File 'lib/selenium/webdriver/remote/bridge.rb', line 223

def getWindowHandles
  execute :getWindowHandles
end

#getWindowPosition(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.



252
253
254
255
256
# File 'lib/selenium/webdriver/remote/bridge.rb', line 252

def getWindowPosition(handle = :current)
  data = execute :getWindowPosition, :window_handle => handle

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

#getWindowSize(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.



241
242
243
244
245
# File 'lib/selenium/webdriver/remote/bridge.rb', line 241

def getWindowSize(handle = :current)
  data = execute :getWindowSize, :window_handle => handle

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

#goBackObject

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.

navigation



159
160
161
# File 'lib/selenium/webdriver/remote/bridge.rb', line 159

def goBack
  execute :goBack
end

#goForwardObject

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.



163
164
165
# File 'lib/selenium/webdriver/remote/bridge.rb', line 163

def goForward
  execute :goForward
end

#isBrowserOnlineObject

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.



324
325
326
# File 'lib/selenium/webdriver/remote/bridge.rb', line 324

def isBrowserOnline
  execute :isBrowserOnline
end

#isElementDisplayed(element) ⇒ 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.



558
559
560
# File 'lib/selenium/webdriver/remote/bridge.rb', line 558

def isElementDisplayed(element)
  execute :isElementDisplayed, :id => element
end

#isElementEnabled(element) ⇒ 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.



550
551
552
# File 'lib/selenium/webdriver/remote/bridge.rb', line 550

def isElementEnabled(element)
  execute :isElementEnabled, :id => element
end

#isElementSelected(element) ⇒ 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.



554
555
556
# File 'lib/selenium/webdriver/remote/bridge.rb', line 554

def isElementSelected(element)
  execute :isElementSelected, :id => element
end

#maximizeWindow(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.



237
238
239
# File 'lib/selenium/webdriver/remote/bridge.rb', line 237

def maximizeWindow(handle = :current)
  execute :maximizeWindow, :window_handle => handle
end

#mouseDownObject

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.



390
391
392
# File 'lib/selenium/webdriver/remote/bridge.rb', line 390

def mouseDown
  execute :mouseDown
end

#mouseMoveTo(element, x = nil, y = nil) ⇒ 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.



398
399
400
401
402
403
404
405
406
# File 'lib/selenium/webdriver/remote/bridge.rb', line 398

def mouseMoveTo(element, x = nil, y = nil)
  params = { :element => element }

  if x && y
    params.merge! :xoffset => x, :yoffset => y
  end

  execute :mouseMoveTo, {}, params
end

#mouseUpObject

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.



394
395
396
# File 'lib/selenium/webdriver/remote/bridge.rb', line 394

def mouseUp
  execute :mouseUp
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.



205
206
207
208
209
# File 'lib/selenium/webdriver/remote/bridge.rb', line 205

def quit
  execute :quit
  http.close
rescue *QUIT_ERRORS
end

#refreshObject

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.



215
216
217
# File 'lib/selenium/webdriver/remote/bridge.rb', line 215

def refresh
  execute :refresh
end

#removeLocalStorageItem(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.



270
271
272
# File 'lib/selenium/webdriver/remote/bridge.rb', line 270

def removeLocalStorageItem(key)
  execute :removeLocalStorageItem, :key => key
end

#removeSessionStorageItem(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.



294
295
296
# File 'lib/selenium/webdriver/remote/bridge.rb', line 294

def removeSessionStorageItem(key)
  execute :removeSessionStorageItem, :key => key
end

#sendKeysToActiveElement(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.



408
409
410
# File 'lib/selenium/webdriver/remote/bridge.rb', line 408

def sendKeysToActiveElement(key)
  execute :sendKeysToActiveElement, {}, :value => key
end

#sendKeysToElement(element, keys) ⇒ 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.



412
413
414
415
416
417
418
# File 'lib/selenium/webdriver/remote/bridge.rb', line 412

def sendKeysToElement(element, keys)
  if @file_detector && local_file = @file_detector.call(keys)
    keys = upload(local_file)
  end

  execute :sendKeysToElement, {:id => element}, {:value => Array(keys)}
end

#session_idObject

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 the current session ID.



96
97
98
# File 'lib/selenium/webdriver/remote/bridge.rb', line 96

def session_id
  @session_id || raise(Error::WebDriverError, "no current session exists")
end

#setAlertValue(keys) ⇒ 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.



147
148
149
# File 'lib/selenium/webdriver/remote/bridge.rb', line 147

def setAlertValue(keys)
  execute :setAlertValue, {}, :text => keys.to_s
end

#setBrowserOnline(bool) ⇒ 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.



328
329
330
# File 'lib/selenium/webdriver/remote/bridge.rb', line 328

def setBrowserOnline(bool)
  execute :setBrowserOnline, {}, :state => bool
end

#setImplicitWaitTimeout(milliseconds) ⇒ 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.



119
120
121
# File 'lib/selenium/webdriver/remote/bridge.rb', line 119

def setImplicitWaitTimeout(milliseconds)
  execute :implicitlyWait, {}, :ms => milliseconds
end

#setLocalStorageItem(key, value) ⇒ 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.



278
279
280
# File 'lib/selenium/webdriver/remote/bridge.rb', line 278

def setLocalStorageItem(key, value)
  execute :setLocalStorageItem, {}, :key => key, :value => value
end

#setLocation(lat, lon, alt) ⇒ 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.



319
320
321
322
# File 'lib/selenium/webdriver/remote/bridge.rb', line 319

def setLocation(lat, lon, alt)
  loc = {:latitude => lat, :longitude => lon, :altitude => alt}
  execute :setLocation, {}, :location => loc
end

#setScreenOrientation(orientation) ⇒ 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.



487
488
489
# File 'lib/selenium/webdriver/remote/bridge.rb', line 487

def setScreenOrientation(orientation)
  execute :setScreenOrientation, {}, :orientation => orientation
end

#setScriptTimeout(milliseconds) ⇒ 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.



123
124
125
# File 'lib/selenium/webdriver/remote/bridge.rb', line 123

def setScriptTimeout(milliseconds)
  execute :setScriptTimeout, {}, :ms => milliseconds
end

#setSessionStorageItem(key, value) ⇒ 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.



302
303
304
# File 'lib/selenium/webdriver/remote/bridge.rb', line 302

def setSessionStorageItem(key, value)
  execute :setSessionStorageItem, {}, :key => key, :value => value
end

#setTimeout(type, milliseconds) ⇒ 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.



127
128
129
# File 'lib/selenium/webdriver/remote/bridge.rb', line 127

def setTimeout(type, milliseconds)
  execute :setTimeout, {}, :type => type, :ms => milliseconds
end

#setVisible(bool) ⇒ 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.



183
184
185
# File 'lib/selenium/webdriver/remote/bridge.rb', line 183

def setVisible(bool)
  execute :setVisible, {}, bool
end

#setWindowPosition(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.



247
248
249
250
# File 'lib/selenium/webdriver/remote/bridge.rb', line 247

def setWindowPosition(x, y, handle = :current)
  execute :setWindowPosition, {:window_handle => handle},
                               :x => x, :y => y
end

#setWindowSize(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.



231
232
233
234
235
# File 'lib/selenium/webdriver/remote/bridge.rb', line 231

def setWindowSize(width, height, handle = :current)
  execute :setWindowSize, {:window_handle => handle},
                           :width  => width,
                           :height => height
end

#statusObject

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.



107
108
109
# File 'lib/selenium/webdriver/remote/bridge.rb', line 107

def status
  execute :status
end

#submitElement(element) ⇒ 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.



433
434
435
# File 'lib/selenium/webdriver/remote/bridge.rb', line 433

def submitElement(element)
  execute :submitElement, :id => element
end

#switchToDefaultContentObject

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.



199
200
201
# File 'lib/selenium/webdriver/remote/bridge.rb', line 199

def switchToDefaultContent
  execute :switchToFrame, {}, :id => nil
end

#switchToFrame(id) ⇒ 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.



191
192
193
# File 'lib/selenium/webdriver/remote/bridge.rb', line 191

def switchToFrame(id)
  execute :switchToFrame, {}, :id => id
end

#switchToParentFrameObject

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.



195
196
197
# File 'lib/selenium/webdriver/remote/bridge.rb', line 195

def switchToParentFrame
  execute :switchToParentFrame
end

#switchToWindow(name) ⇒ 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.



187
188
189
# File 'lib/selenium/webdriver/remote/bridge.rb', line 187

def switchToWindow(name)
  execute :switchToWindow, {}, :name => name
end

#touchDoubleTap(element) ⇒ 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.



445
446
447
# File 'lib/selenium/webdriver/remote/bridge.rb', line 445

def touchDoubleTap(element)
  execute :touchDoubleTap, {}, :element => element
end

#touchDown(x, y) ⇒ 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.



453
454
455
# File 'lib/selenium/webdriver/remote/bridge.rb', line 453

def touchDown(x, y)
  execute :touchDown, {}, :x => x, :y => y
end

#touchElementFlick(element, right_by, down_by, speed) ⇒ 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.



479
480
481
482
483
484
485
# File 'lib/selenium/webdriver/remote/bridge.rb', line 479

def touchElementFlick(element, right_by, down_by, speed)
  execute :touchFlick, {}, :element => element,
                           :xoffset => right_by,
                           :yoffset => down_by,
                           :speed   => speed

end

#touchFlick(xspeed, yspeed) ⇒ 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.



475
476
477
# File 'lib/selenium/webdriver/remote/bridge.rb', line 475

def touchFlick(xspeed, yspeed)
  execute :touchFlick, {}, :xspeed => xspeed, :yspeed => yspeed
end

#touchLongPress(element) ⇒ 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.



449
450
451
# File 'lib/selenium/webdriver/remote/bridge.rb', line 449

def touchLongPress(element)
  execute :touchLongPress, {}, :element => element
end

#touchMove(x, y) ⇒ 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.



461
462
463
# File 'lib/selenium/webdriver/remote/bridge.rb', line 461

def touchMove(x, y)
  execute :touchMove, {}, :x => x, :y => y
end

#touchScroll(element, x, y) ⇒ 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.



465
466
467
468
469
470
471
472
473
# File 'lib/selenium/webdriver/remote/bridge.rb', line 465

def touchScroll(element, x, y)
  if element
    execute :touchScroll, {}, :element => element,
                              :xoffset => x,
                              :yoffset => y
  else
    execute :touchScroll, {}, :xoffset => x, :yoffset => y
  end
end

#touchSingleTap(element) ⇒ 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.



441
442
443
# File 'lib/selenium/webdriver/remote/bridge.rb', line 441

def touchSingleTap(element)
  execute :touchSingleTap, {}, :element => element
end

#touchUp(x, y) ⇒ 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.



457
458
459
# File 'lib/selenium/webdriver/remote/bridge.rb', line 457

def touchUp(x, y)
  execute :touchUp, {}, :x => x, :y => y
end

#upload(local_file) ⇒ 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.



420
421
422
423
424
425
426
# File 'lib/selenium/webdriver/remote/bridge.rb', line 420

def upload(local_file)
  unless File.file?(local_file)
    raise Error::WebDriverError, "you may only upload files: #{local_file.inspect}"
  end

  execute :uploadFile, {}, :file => Zipper.zip_file(local_file)
end