selenium-webdriver 0.0.28 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. data/CHANGES +25 -0
  2. data/lib/selenium/webdriver.rb +6 -29
  3. data/lib/selenium/webdriver/chrome.rb +4 -2
  4. data/lib/selenium/webdriver/chrome/extension.zip +0 -0
  5. data/lib/selenium/webdriver/chrome/launcher.rb +15 -16
  6. data/lib/selenium/webdriver/common.rb +18 -0
  7. data/lib/selenium/webdriver/{bridge_helper.rb → common/bridge_helper.rb} +0 -0
  8. data/lib/selenium/webdriver/{core_ext → common/core_ext}/dir.rb +0 -0
  9. data/lib/selenium/webdriver/{core_ext → common/core_ext}/string.rb +0 -0
  10. data/lib/selenium/webdriver/{driver.rb → common/driver.rb} +19 -7
  11. data/lib/selenium/webdriver/{driver_extensions → common/driver_extensions}/takes_screenshot.rb +2 -2
  12. data/lib/selenium/webdriver/{element.rb → common/element.rb} +30 -3
  13. data/lib/selenium/webdriver/{error.rb → common/error.rb} +0 -0
  14. data/lib/selenium/webdriver/{file_reaper.rb → common/file_reaper.rb} +0 -0
  15. data/lib/selenium/webdriver/{find.rb → common/find.rb} +9 -1
  16. data/lib/selenium/webdriver/{keys.rb → common/keys.rb} +0 -0
  17. data/lib/selenium/webdriver/{navigation.rb → common/navigation.rb} +3 -3
  18. data/lib/selenium/webdriver/{options.rb → common/options.rb} +47 -5
  19. data/lib/selenium/webdriver/{platform.rb → common/platform.rb} +10 -0
  20. data/lib/selenium/webdriver/common/socket_poller.rb +47 -0
  21. data/lib/selenium/webdriver/{target_locator.rb → common/target_locator.rb} +11 -8
  22. data/lib/selenium/webdriver/{timeouts.rb → common/timeouts.rb} +0 -0
  23. data/lib/selenium/webdriver/common/wait.rb +60 -0
  24. data/lib/selenium/webdriver/common/zipper.rb +54 -0
  25. data/lib/selenium/webdriver/firefox.rb +6 -3
  26. data/lib/selenium/webdriver/firefox/binary.rb +46 -43
  27. data/lib/selenium/webdriver/firefox/bridge.rb +2 -10
  28. data/lib/selenium/webdriver/firefox/extension.rb +51 -0
  29. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  30. data/lib/selenium/webdriver/firefox/launcher.rb +25 -69
  31. data/lib/selenium/webdriver/firefox/profile.rb +123 -89
  32. data/lib/selenium/webdriver/firefox/profiles_ini.rb +2 -1
  33. data/lib/selenium/webdriver/firefox/socket_lock.rb +77 -0
  34. data/lib/selenium/webdriver/ie/bridge.rb +25 -38
  35. data/lib/selenium/webdriver/ie/lib.rb +11 -1
  36. data/lib/selenium/webdriver/ie/native/win32/InternetExplorerDriver.dll +0 -0
  37. data/lib/selenium/webdriver/ie/native/x64/InternetExplorerDriver.dll +0 -0
  38. data/lib/selenium/webdriver/ie/util.rb +3 -17
  39. data/lib/selenium/webdriver/remote/bridge.rb +9 -1
  40. data/lib/selenium/webdriver/remote/capabilities.rb +53 -20
  41. data/lib/selenium/webdriver/remote/http/default.rb +2 -2
  42. metadata +52 -31
  43. data/lib/selenium/webdriver/child_process.rb +0 -243
  44. data/lib/selenium/webdriver/zip_helper.rb +0 -27
@@ -68,8 +68,6 @@ module Selenium
68
68
  check_error_code Lib.wdGetVisible(@driver_pointer, int_ptr), "unable to determine if browser is visible"
69
69
 
70
70
  int_ptr.get_int(0) == 1
71
- ensure
72
- int_ptr.free
73
71
  end
74
72
 
75
73
  def setBrowserVisible(bool)
@@ -111,12 +109,11 @@ module Selenium
111
109
  rescue Error::NoSuchWindowError
112
110
  end
113
111
  end
114
-
115
- # hack
116
- ObjectSpace.each_object(WebDriver::Element) { |e| finalize e.ref if e.bridge == self }
117
112
  ensure
118
- Lib.wdFreeDriver(@driver_pointer)
113
+ ptr = @driver_pointer
119
114
  @driver_pointer = nil
115
+
116
+ check_error_code Lib.wdFreeDriver(ptr), "unable to free driver #{self}"
120
117
  end
121
118
 
122
119
  def close
@@ -133,7 +130,6 @@ module Selenium
133
130
  "unable to obtain all window handles"
134
131
 
135
132
  string_array_from(raw_handles).uniq
136
- # TODO: who calls raw_handles.free if exception is raised?
137
133
  end
138
134
 
139
135
  def getCurrentWindowHandle
@@ -160,8 +156,6 @@ module Selenium
160
156
 
161
157
  extract_return_value script_result_ref
162
158
  ensure
163
- script_args_ref.free
164
- script_result_ref.free if script_result_ref
165
159
  Lib.wdFreeScriptArgs(args_pointer) if args_pointer
166
160
  end
167
161
 
@@ -223,8 +217,6 @@ module Selenium
223
217
  #
224
218
 
225
219
  def findElementByClassName(parent, class_name)
226
- # TODO: argument checks
227
-
228
220
  create_element do |raw_element|
229
221
  check_error_code Lib.wdFindElementByClassName(@driver_pointer, parent, wstring_ptr(class_name), raw_element),
230
222
  "unable to find element by class name using #{class_name.inspect}"
@@ -232,14 +224,26 @@ module Selenium
232
224
  end
233
225
 
234
226
  def findElementsByClassName(parent, class_name)
235
- # TODO: argument checks
236
-
237
227
  create_element_collection do |raw_elements|
238
228
  check_error_code Lib.wdFindElementsByClassName(@driver_pointer, parent, wstring_ptr(class_name), raw_elements),
239
229
  "unable to find elements by class name using #{class_name.inspect}"
240
230
  end
241
231
  end
242
232
 
233
+ def findElementByCssSelector(parent, selector)
234
+ create_element do |raw_element|
235
+ check_error_code Lib.wdFindElementByCss(@driver_pointer, parent, wstring_ptr(selector), raw_element),
236
+ "unable to find element by css selector using #{selector.inspect}"
237
+ end
238
+ end
239
+
240
+ def findElementsByCssSelector(parent, selector)
241
+ create_element_collection do |raw_elements|
242
+ check_error_code Lib.wdFindElementsByCss(@driver_pointer, parent, wstring_ptr(selector), raw_elements),
243
+ "unable to find elements by css selector using #{selector.inspect}"
244
+ end
245
+ end
246
+
243
247
  def findElementById(parent, id)
244
248
  create_element do |raw_element|
245
249
  check_error_code Lib.wdFindElementById(@driver_pointer, parent, wstring_ptr(id), raw_element),
@@ -379,8 +383,6 @@ module Selenium
379
383
  "unable to get enabled state"
380
384
 
381
385
  int_ptr.get_int(0) == 1
382
- ensure
383
- int_ptr.free
384
386
  end
385
387
 
386
388
  def isElementSelected(element_pointer)
@@ -389,8 +391,6 @@ module Selenium
389
391
  "unable to get selected state"
390
392
 
391
393
  int_ptr.get_int(0) == 1
392
- ensure
393
- int_ptr.free
394
394
  end
395
395
 
396
396
  def isElementDisplayed(element_pointer)
@@ -398,8 +398,6 @@ module Selenium
398
398
  check_error_code Lib.wdeIsDisplayed(element_pointer, int_ptr), "unable to check visibilty"
399
399
 
400
400
  int_ptr.get_int(0) == 1;
401
- ensure
402
- int_ptr.free
403
401
  end
404
402
 
405
403
  def submitElement(element_pointer)
@@ -418,8 +416,6 @@ module Selenium
418
416
  check_error_code result, "unable to toggle element"
419
417
 
420
418
  int_ptr.get_int(0) == 1
421
- ensure
422
- int_ptr.free
423
419
  end
424
420
 
425
421
  def setElementSelected(element_pointer)
@@ -457,8 +453,6 @@ module Selenium
457
453
 
458
454
  Lib.wdeMouseMoveTo(hwnd.get_pointer(0), duration, x.get_long(0), y.get_long(0), destination_x, destination_y)
459
455
  Lib.wdeMouseUpAt(hwnd.get_pointer(0), destination_x, destination_y)
460
- ensure
461
- [hwnd, x, y, width, height].each { |pointer| pointer.free }
462
456
  end
463
457
 
464
458
  def getElementLocation(element_pointer)
@@ -468,9 +462,6 @@ module Selenium
468
462
  check_error_code Lib.wdeGetLocation(element_pointer, x, y), "unable to get location of element"
469
463
 
470
464
  Point.new x.get_int(0), y.get_int(0)
471
- ensure
472
- x.free
473
- y.free
474
465
  end
475
466
 
476
467
  def getElementSize(element_pointer)
@@ -480,9 +471,6 @@ module Selenium
480
471
  check_error_code Lib.wdeGetSize(element_pointer, width, height), "unable to get size of element"
481
472
 
482
473
  Dimension.new width.get_int(0), height.get_int(0)
483
- ensure
484
- width.free
485
- height.free
486
474
  end
487
475
 
488
476
  def finalize(element_pointer)
@@ -518,10 +506,9 @@ module Selenium
518
506
 
519
507
  def extract_return_value(pointer_ref)
520
508
  result, returned = nil
521
- pointers_to_free = []
522
509
  script_result = pointer_ref.get_pointer(0)
523
510
 
524
- pointers_to_free << type_pointer = FFI::MemoryPointer.new(:int)
511
+ type_pointer = FFI::MemoryPointer.new(:int)
525
512
  result = Lib.wdGetScriptResultType(@driver_pointer, script_result, type_pointer)
526
513
 
527
514
  check_error_code result, "Cannot determine result type"
@@ -533,23 +520,24 @@ module Selenium
533
520
  check_error_code Lib.wdGetStringScriptResult(script_result, wrapper), "Cannot extract string result"
534
521
  end
535
522
  when 2 # Long
536
- pointers_to_free << long_pointer = FFI::MemoryPointer.new(:long)
523
+ long_pointer = FFI::MemoryPointer.new(:long)
537
524
  check_error_code Lib.wdGetNumberScriptResult(script_result, long_pointer),
538
525
  "Cannot extract number result"
539
526
 
540
527
  long_pointer.get_long(0)
541
528
  when 3 # Boolean
542
- pointers_to_free << int_pointer = FFI::MemoryPointer.new(:int)
529
+ int_pointer = FFI::MemoryPointer.new(:int)
543
530
  check_error_code Lib.wdGetBooleanScriptResult(script_result, int_pointer),
544
531
  "Cannot extract boolean result"
545
532
 
546
533
  int_pointer.get_int(0) == 1
547
534
  when 4 # WebElement
548
- pointers_to_free << element_pointer = FFI::MemoryPointer.new(:pointer)
535
+ element_pointer = FFI::MemoryPointer.new(:pointer)
549
536
  check_error_code Lib.wdGetElementScriptResult(script_result, @driver_pointer, element_pointer),
550
537
  "Cannot extract element result"
551
538
 
552
- Element.new(self, element_pointer.get_pointer(0))
539
+ auto_ptr = FFI::AutoPointer.new(element_pointer.get_pointer(0), Lib.method(:finalize_element))
540
+ Element.new(self, auto_ptr)
553
541
  when 5 # Nothing
554
542
  nil
555
543
  when 6 # Exception
@@ -559,12 +547,12 @@ module Selenium
559
547
 
560
548
  raise Error::WebDriverError, message
561
549
  when 7 # Double
562
- pointers_to_free << double_pointer = FFI::MemoryPointer.new(:double)
550
+ double_pointer = FFI::MemoryPointer.new(:double)
563
551
  check_error_code Lib.wdGetDoubleScriptResult(script_result, double_pointer), "Cannot extract double result"
564
552
 
565
553
  double_pointer.get_double(0)
566
554
  when 8 # Array
567
- pointers_to_free << array_length_pointer = FFI::MemoryPointer.new(:int)
555
+ array_length_pointer = FFI::MemoryPointer.new(:int)
568
556
  check_error_code Lib.wdGetArrayLengthScriptResult(@driver_pointer, script_result, array_length_pointer),
569
557
  "Cannot extract array length"
570
558
 
@@ -588,7 +576,6 @@ module Selenium
588
576
  end
589
577
  ensure
590
578
  Lib.wdFreeScriptResult(script_result) if script_result
591
- pointers_to_free.each { |p| p.free }
592
579
  end
593
580
 
594
581
  def check_error_code(code, message)
@@ -49,6 +49,7 @@ module Selenium
49
49
  attach_function :wdExecuteScript, [:pointer, :pointer, :pointer, :pointer ], :int
50
50
  attach_function :wdeFreeElement, [:pointer ], :int
51
51
  attach_function :wdFindElementByClassName, [:pointer, :pointer, :pointer, :pointer ], :int
52
+ attach_function :wdFindElementByCss, [:pointer, :pointer, :pointer, :pointer ], :int
52
53
  attach_function :wdFindElementById, [:pointer, :pointer, :pointer, :pointer ], :int
53
54
  attach_function :wdFindElementByLinkText, [:pointer, :pointer, :pointer, :pointer ], :int
54
55
  attach_function :wdFindElementByName, [:pointer, :pointer, :pointer, :pointer ], :int
@@ -56,6 +57,7 @@ module Selenium
56
57
  attach_function :wdFindElementByTagName, [:pointer, :pointer, :pointer, :pointer ], :int
57
58
  attach_function :wdFindElementByXPath, [:pointer, :pointer, :pointer, :pointer ], :int
58
59
  attach_function :wdFindElementsByClassName, [:pointer, :pointer, :pointer, :pointer ], :int
60
+ attach_function :wdFindElementsByCss, [:pointer, :pointer, :pointer, :pointer ], :int
59
61
  attach_function :wdFindElementsById, [:pointer, :pointer, :pointer, :pointer ], :int
60
62
  attach_function :wdFindElementsByLinkText, [:pointer, :pointer, :pointer, :pointer ], :int
61
63
  attach_function :wdFindElementsByName, [:pointer, :pointer, :pointer, :pointer ], :int
@@ -96,7 +98,15 @@ module Selenium
96
98
  attach_function :wdSwitchToFrame, [:pointer, :pointer ], :int
97
99
  attach_function :wdSwitchToWindow, [:pointer, :pointer ], :int
98
100
  attach_function :wdWaitForLoadToComplete, [:pointer ], :int
99
- end
101
+
102
+ def self.finalize_element(ptr)
103
+ code = Lib.wdeFreeElement(ptr)
104
+ if err = WebDriver::Error.for_code(code)
105
+ raise err, "could not free element (#{ptr})"
106
+ end
107
+ end
108
+
109
+ end # Lib
100
110
 
101
111
  module Kernel32
102
112
  extend FFI::Library
@@ -7,12 +7,6 @@ module Selenium
7
7
  #
8
8
 
9
9
  module Util
10
- CP_ACP = 0
11
- CP_OEMCP = 1
12
- CP_MACCP = 2
13
- CP_THREAD_ACP = 3
14
- CP_SYMBOL = 42
15
- CP_UTF7 = 65000
16
10
  CP_UTF8 = 65001
17
11
 
18
12
  def string_array_from(raw_strings)
@@ -40,15 +34,14 @@ module Selenium
40
34
  arr
41
35
  ensure
42
36
  Lib.wdFreeStringCollection(strings_ptr)
43
- raw_strings.free
44
37
  end
45
38
 
46
39
  def create_element(&blk)
47
40
  element_ptr_ref = FFI::MemoryPointer.new :pointer
48
41
  yield element_ptr_ref
49
- Element.new(self, element_ptr_ref.get_pointer(0))
50
- ensure
51
- element_ptr_ref.free
42
+
43
+ auto_ptr = FFI::AutoPointer.new(element_ptr_ref.get_pointer(0), Lib.method(:finalize_element))
44
+ Element.new(self, auto_ptr)
52
45
  end
53
46
 
54
47
  def create_element_collection(&blk)
@@ -85,7 +78,6 @@ module Selenium
85
78
  wstring_to_bytestring raw_string
86
79
  ensure
87
80
  Lib.wdFreeString(string_ptr) unless string_ptr.null?
88
- string_ptr_ref.free
89
81
  end
90
82
 
91
83
  def extract_elements_from(elements_ptr_ref)
@@ -111,12 +103,8 @@ module Selenium
111
103
  Lib.wdFreeElementCollection(elements_ptr, 0)
112
104
 
113
105
  arr
114
- ensure
115
- elements_ptr_ref.free
116
- length_ptr.free
117
106
  end
118
107
 
119
-
120
108
  def wstring_ptr(str)
121
109
  str = str.to_s
122
110
  size = Kernel32.MultiByteToWideChar(CP_UTF8, 0, str, -1, nil, 0)
@@ -142,8 +130,6 @@ module Selenium
142
130
  Kernel32.WideCharToMultiByte(CP_UTF8, 0, wstring, -1, buf, size, nil, nil )
143
131
 
144
132
  buf.get_bytes(0, size - 1)
145
- ensure
146
- buf.free if buf
147
133
  end
148
134
 
149
135
  end # Util
@@ -173,7 +173,7 @@ module Selenium
173
173
  end
174
174
 
175
175
  def executeScript(script, *args)
176
- unless capabilities.javascript?
176
+ unless capabilities.javascript_enabled?
177
177
  raise Error::UnsupportedOperationError, "underlying webdriver instance does not support javascript"
178
178
  end
179
179
 
@@ -205,6 +205,14 @@ module Selenium
205
205
  find_elements_by 'class name', class_name, parent
206
206
  end
207
207
 
208
+ def findElementByCssSelector(parent, selector)
209
+ find_element_by 'css selector', selector, parent
210
+ end
211
+
212
+ def findElementsByCssSelector(parent, selector)
213
+ find_elements_by 'css selector', selector, parent
214
+ end
215
+
208
216
  def findElementById(parent, id)
209
217
  find_element_by 'id', id, parent
210
218
  end
@@ -8,8 +8,18 @@ module Selenium
8
8
  #
9
9
  class Capabilities
10
10
 
11
- attr_accessor :browser_name, :version, :platform, :javascript_enabled
12
- alias_method :javascript?, :javascript_enabled
11
+ attr_accessor :css_selectors_enabled,
12
+ :javascript_enabled,
13
+ :native_events,
14
+ :platform,
15
+ :takes_screenshot,
16
+ :version,
17
+ :browser_name
18
+
19
+ alias_method :css_selectors_enabled?, :css_selectors_enabled
20
+ alias_method :javascript_enabled?, :javascript_enabled
21
+ alias_method :native_events?, :native_events
22
+ alias_method :takes_screenshot?, :takes_screenshot
13
23
 
14
24
  #
15
25
  # Convenience methods for the common choices.
@@ -57,46 +67,69 @@ module Selenium
57
67
  }.merge(opts))
58
68
  end
59
69
 
70
+ def android(opts = {})
71
+ new({
72
+ :browser_name => "android",
73
+ :platform => :android
74
+ }.merge(opts))
75
+ end
76
+
60
77
  #
61
78
  # @api private
62
79
  #
63
80
 
64
81
  def json_create(data)
65
82
  new(
66
- :browser_name => data["browserName"],
67
- :version => data["version"],
68
- :platform => data["platform"].downcase.to_sym,
69
- :javascript_enabled => data["javascriptEnabled"]
83
+ :browser_name => data["browserName"],
84
+ :version => data["version"],
85
+ :platform => data["platform"].downcase.to_sym,
86
+ :javascript_enabled => data["javascriptEnabled"],
87
+ :css_selectors_enabled => data["cssSelectorsEnabled"],
88
+ :takes_screenshot => data["takesScreenshot"],
89
+ :native_events => data["nativeEvents"]
70
90
  )
71
91
  end
72
92
  end
73
93
 
74
- # @option :browser_name [String] required browser name
75
- # @option :version [String] required browser version number
76
- # @option :platform [Symbol] one of :any, :win, :mac, or :x
77
- # @option :javascript_enabled [Boolean] should the test run with javascript enabled?
94
+ # @option :browser_name [String] required browser name
95
+ # @option :version [String] required browser version number
96
+ # @option :platform [Symbol] one of :any, :win, :mac, or :x
97
+ # @option :javascript_enabled [Boolean] does the driver have javascript enabled?
98
+ # @option :css_selectors_enabled [Boolean] does the driver support CSS selectors?
99
+ # @option :takes_screenshot [Boolean] can this driver take screenshots?
100
+ # @option :native_events [Boolean] does this driver use native events?
78
101
  #
79
102
  # @api public
80
103
  #
81
104
 
82
105
  def initialize(opts = {})
83
- @browser_name = opts[:browser_name] || ""
84
- @version = opts[:version] || ""
85
- @platform = opts[:platform] || :any
86
- @javascript_enabled = opts[:javascript_enabled] || false
106
+ @browser_name = opts[:browser_name] || ""
107
+ @version = opts[:version] || ""
108
+ @platform = opts[:platform] || :any
109
+ @javascript_enabled = opts[:javascript_enabled] || false
110
+ @css_selectors_enabled = opts[:css_selectors_enabled] || false
111
+ @takes_screenshot = opts[:takes_screenshot] || false
112
+ @native_events = opts[:native_events] || false
87
113
  end
88
114
 
89
115
  #
90
116
  # @api private
91
117
  #
92
118
 
93
- def to_json(*args)
119
+ def as_json(opts = nil)
94
120
  {
95
- "browserName" => browser_name,
96
- "version" => version,
97
- "platform" => platform.to_s.upcase,
98
- "javascriptEnabled" => javascript?
99
- }.to_json(*args)
121
+ "browserName" => browser_name,
122
+ "version" => version,
123
+ "platform" => platform.to_s.upcase,
124
+ "javascriptEnabled" => javascript_enabled?,
125
+ "cssCelectorsEnabled" => css_selectors_enabled?,
126
+ "takesScreenshot" => takes_screenshot?,
127
+ "nativeEvents" => native_events?
128
+ }
129
+ end
130
+
131
+ def to_json(*args)
132
+ as_json.to_json(*args)
100
133
  end
101
134
 
102
135
  end # Capabilities
@@ -19,8 +19,8 @@ module Selenium
19
19
  end
20
20
 
21
21
  if self.class.timeout
22
- http.connect_timeout = self.class.timeout
23
- http.read_timeout = self.class.timeout
22
+ http.open_timeout = self.class.timeout
23
+ http.read_timeout = self.class.timeout
24
24
  end
25
25
 
26
26
  http
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 28
9
- version: 0.0.28
8
+ - 29
9
+ version: 0.0.29
10
10
  platform: ruby
11
11
  authors:
12
12
  - Jari Bakken
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-08-23 00:00:00 +02:00
17
+ date: 2010-10-09 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -42,7 +42,7 @@ dependencies:
42
42
  type: :runtime
43
43
  version_requirements: *id002
44
44
  - !ruby/object:Gem::Dependency
45
- name: ffi
45
+ name: childprocess
46
46
  prerelease: false
47
47
  requirement: &id003 !ruby/object:Gem::Requirement
48
48
  requirements:
@@ -50,35 +50,52 @@ dependencies:
50
50
  - !ruby/object:Gem::Version
51
51
  segments:
52
52
  - 0
53
- - 6
54
- - 1
55
- version: 0.6.1
53
+ - 0
54
+ - 7
55
+ version: 0.0.7
56
56
  type: :runtime
57
57
  version_requirements: *id003
58
58
  - !ruby/object:Gem::Dependency
59
- name: rspec
59
+ name: ffi
60
60
  prerelease: false
61
61
  requirement: &id004 !ruby/object:Gem::Requirement
62
62
  requirements:
63
- - - ">="
63
+ - - ~>
64
64
  - !ruby/object:Gem::Version
65
65
  segments:
66
66
  - 0
67
- version: "0"
68
- type: :development
67
+ - 6
68
+ - 3
69
+ version: 0.6.3
70
+ type: :runtime
69
71
  version_requirements: *id004
70
72
  - !ruby/object:Gem::Dependency
71
- name: rack
73
+ name: rspec
72
74
  prerelease: false
73
75
  requirement: &id005 !ruby/object:Gem::Requirement
74
76
  requirements:
75
- - - ">="
77
+ - - "="
76
78
  - !ruby/object:Gem::Version
77
79
  segments:
80
+ - 1
81
+ - 3
78
82
  - 0
79
- version: "0"
83
+ version: 1.3.0
80
84
  type: :development
81
85
  version_requirements: *id005
86
+ - !ruby/object:Gem::Dependency
87
+ name: rack
88
+ prerelease: false
89
+ requirement: &id006 !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ segments:
94
+ - 1
95
+ - 0
96
+ version: "1.0"
97
+ type: :development
98
+ version_requirements: *id006
82
99
  description: WebDriver is a tool for writing automated tests of websites. It aims to mimic the behaviour of a real user, and as such interacts with the HTML of the application.
83
100
  email: jari.bakken@gmail.com
84
101
  executables: []
@@ -90,36 +107,40 @@ extra_rdoc_files: []
90
107
  files:
91
108
  - lib/selenium-webdriver.rb
92
109
  - lib/selenium/webdriver.rb
93
- - lib/selenium/webdriver/bridge_helper.rb
94
- - lib/selenium/webdriver/child_process.rb
95
110
  - lib/selenium/webdriver/chrome.rb
96
- - lib/selenium/webdriver/driver.rb
97
- - lib/selenium/webdriver/element.rb
98
- - lib/selenium/webdriver/error.rb
99
- - lib/selenium/webdriver/file_reaper.rb
100
- - lib/selenium/webdriver/find.rb
111
+ - lib/selenium/webdriver/common.rb
101
112
  - lib/selenium/webdriver/firefox.rb
102
113
  - lib/selenium/webdriver/ie.rb
103
- - lib/selenium/webdriver/keys.rb
104
- - lib/selenium/webdriver/navigation.rb
105
- - lib/selenium/webdriver/options.rb
106
- - lib/selenium/webdriver/platform.rb
107
114
  - lib/selenium/webdriver/remote.rb
108
- - lib/selenium/webdriver/target_locator.rb
109
- - lib/selenium/webdriver/timeouts.rb
110
- - lib/selenium/webdriver/zip_helper.rb
111
115
  - lib/selenium/webdriver/chrome/bridge.rb
112
116
  - lib/selenium/webdriver/chrome/command_executor.rb
113
117
  - lib/selenium/webdriver/chrome/extension.zip
114
118
  - lib/selenium/webdriver/chrome/launcher.rb
115
- - lib/selenium/webdriver/core_ext/dir.rb
116
- - lib/selenium/webdriver/core_ext/string.rb
117
- - lib/selenium/webdriver/driver_extensions/takes_screenshot.rb
119
+ - lib/selenium/webdriver/common/bridge_helper.rb
120
+ - lib/selenium/webdriver/common/driver.rb
121
+ - lib/selenium/webdriver/common/element.rb
122
+ - lib/selenium/webdriver/common/error.rb
123
+ - lib/selenium/webdriver/common/file_reaper.rb
124
+ - lib/selenium/webdriver/common/find.rb
125
+ - lib/selenium/webdriver/common/keys.rb
126
+ - lib/selenium/webdriver/common/navigation.rb
127
+ - lib/selenium/webdriver/common/options.rb
128
+ - lib/selenium/webdriver/common/platform.rb
129
+ - lib/selenium/webdriver/common/socket_poller.rb
130
+ - lib/selenium/webdriver/common/target_locator.rb
131
+ - lib/selenium/webdriver/common/timeouts.rb
132
+ - lib/selenium/webdriver/common/wait.rb
133
+ - lib/selenium/webdriver/common/zipper.rb
134
+ - lib/selenium/webdriver/common/core_ext/dir.rb
135
+ - lib/selenium/webdriver/common/core_ext/string.rb
136
+ - lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb
118
137
  - lib/selenium/webdriver/firefox/binary.rb
119
138
  - lib/selenium/webdriver/firefox/bridge.rb
139
+ - lib/selenium/webdriver/firefox/extension.rb
120
140
  - lib/selenium/webdriver/firefox/launcher.rb
121
141
  - lib/selenium/webdriver/firefox/profile.rb
122
142
  - lib/selenium/webdriver/firefox/profiles_ini.rb
143
+ - lib/selenium/webdriver/firefox/socket_lock.rb
123
144
  - lib/selenium/webdriver/firefox/util.rb
124
145
  - lib/selenium/webdriver/firefox/extension/webdriver.xpi
125
146
  - lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so