selenium-webdriver 2.45.0 → 3.142.7

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 (172) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +795 -3
  3. data/Gemfile +2 -0
  4. data/{COPYING → LICENSE} +1 -3
  5. data/README.md +13 -9
  6. data/lib/selenium/server.rb +93 -71
  7. data/lib/selenium/webdriver/atoms/getAttribute.js +7 -0
  8. data/lib/selenium/webdriver/atoms/isDisplayed.js +102 -0
  9. data/lib/selenium/webdriver/atoms.rb +37 -0
  10. data/lib/selenium/webdriver/chrome/bridge.rb +47 -99
  11. data/lib/selenium/webdriver/chrome/driver.rb +127 -0
  12. data/lib/selenium/webdriver/chrome/options.rb +190 -0
  13. data/lib/selenium/webdriver/chrome/profile.rb +40 -20
  14. data/lib/selenium/webdriver/chrome/service.rb +46 -62
  15. data/lib/selenium/webdriver/chrome.rb +34 -6
  16. data/lib/selenium/webdriver/common/action_builder.rb +69 -56
  17. data/lib/selenium/webdriver/common/alert.rb +25 -8
  18. data/lib/selenium/webdriver/common/bridge_helper.rb +35 -20
  19. data/lib/selenium/webdriver/common/driver.rb +90 -63
  20. data/lib/selenium/webdriver/common/driver_extensions/downloads_files.rb +45 -0
  21. data/lib/selenium/webdriver/common/driver_extensions/has_addons.rb +50 -0
  22. data/lib/selenium/webdriver/common/driver_extensions/has_debugger.rb +42 -0
  23. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +26 -11
  24. data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +51 -0
  25. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +58 -0
  26. data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +51 -0
  27. data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +23 -6
  28. data/lib/selenium/webdriver/common/driver_extensions/has_session_id.rb +19 -2
  29. data/lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb +24 -7
  30. data/lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb +19 -3
  31. data/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +23 -7
  32. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +26 -5
  33. data/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +20 -6
  34. data/lib/selenium/webdriver/common/element.rb +79 -37
  35. data/lib/selenium/webdriver/common/error.rb +282 -106
  36. data/lib/selenium/webdriver/common/file_reaper.rb +23 -12
  37. data/lib/selenium/webdriver/common/html5/local_storage.rb +29 -12
  38. data/lib/selenium/webdriver/common/html5/session_storage.rb +29 -12
  39. data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +29 -18
  40. data/lib/selenium/webdriver/common/interactions/input_device.rb +54 -0
  41. data/lib/selenium/webdriver/common/interactions/interaction.rb +53 -0
  42. data/lib/selenium/webdriver/common/interactions/interactions.rb +43 -0
  43. data/lib/selenium/webdriver/common/interactions/key_actions.rb +145 -0
  44. data/lib/selenium/webdriver/common/interactions/key_input.rb +66 -0
  45. data/lib/selenium/webdriver/common/interactions/none_input.rb +36 -0
  46. data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +363 -0
  47. data/lib/selenium/webdriver/common/interactions/pointer_input.rb +139 -0
  48. data/lib/selenium/webdriver/common/keyboard.rb +27 -12
  49. data/lib/selenium/webdriver/common/keys.rb +118 -81
  50. data/lib/selenium/webdriver/common/log_entry.rb +27 -8
  51. data/lib/selenium/webdriver/common/logger.rb +115 -0
  52. data/lib/selenium/webdriver/common/logs.rb +24 -7
  53. data/lib/selenium/webdriver/common/manager.rb +177 -0
  54. data/lib/selenium/webdriver/common/mouse.rb +29 -12
  55. data/lib/selenium/webdriver/common/navigation.rb +21 -4
  56. data/lib/selenium/webdriver/common/options.rb +43 -126
  57. data/lib/selenium/webdriver/common/platform.rb +101 -97
  58. data/lib/selenium/webdriver/common/port_prober.rb +24 -17
  59. data/lib/selenium/webdriver/common/profile_helper.rb +27 -11
  60. data/lib/selenium/webdriver/common/proxy.rb +86 -73
  61. data/lib/selenium/webdriver/common/search_context.rb +49 -33
  62. data/lib/selenium/webdriver/common/service.rb +219 -0
  63. data/lib/selenium/webdriver/common/socket_lock.rb +82 -0
  64. data/lib/selenium/webdriver/common/socket_poller.rb +47 -26
  65. data/lib/selenium/webdriver/common/target_locator.rb +35 -14
  66. data/lib/selenium/webdriver/common/timeouts.rb +23 -6
  67. data/lib/selenium/webdriver/common/touch_action_builder.rb +25 -11
  68. data/lib/selenium/webdriver/common/touch_screen.rb +42 -24
  69. data/lib/selenium/webdriver/common/w3c_action_builder.rb +212 -0
  70. data/lib/selenium/webdriver/common/w3c_manager.rb +45 -0
  71. data/lib/selenium/webdriver/common/wait.rb +34 -14
  72. data/lib/selenium/webdriver/common/window.rb +75 -16
  73. data/lib/selenium/webdriver/common/zipper.rb +26 -11
  74. data/lib/selenium/webdriver/common.rb +40 -7
  75. data/lib/selenium/webdriver/edge/bridge.rb +76 -0
  76. data/lib/selenium/webdriver/edge/driver.rb +66 -0
  77. data/lib/selenium/webdriver/edge/options.rb +80 -0
  78. data/lib/selenium/webdriver/edge/service.rb +52 -0
  79. data/lib/selenium/webdriver/edge.rb +44 -0
  80. data/lib/selenium/webdriver/firefox/binary.rb +70 -48
  81. data/lib/selenium/webdriver/firefox/driver.rb +50 -0
  82. data/lib/selenium/webdriver/firefox/extension/prefs.json +14 -13
  83. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  84. data/lib/selenium/webdriver/firefox/extension.rb +50 -19
  85. data/lib/selenium/webdriver/firefox/launcher.rb +33 -28
  86. data/lib/selenium/webdriver/firefox/legacy/driver.rb +83 -0
  87. data/lib/selenium/webdriver/firefox/marionette/bridge.rb +49 -0
  88. data/lib/selenium/webdriver/firefox/marionette/driver.rb +90 -0
  89. data/lib/selenium/webdriver/firefox/options.rb +162 -0
  90. data/lib/selenium/webdriver/firefox/profile.rb +66 -48
  91. data/lib/selenium/webdriver/firefox/profiles_ini.rb +28 -16
  92. data/lib/selenium/webdriver/firefox/service.rb +52 -0
  93. data/lib/selenium/webdriver/firefox/util.rb +19 -2
  94. data/lib/selenium/webdriver/firefox.rb +46 -10
  95. data/lib/selenium/webdriver/ie/driver.rb +85 -0
  96. data/lib/selenium/webdriver/ie/options.rb +138 -0
  97. data/lib/selenium/webdriver/ie/service.rb +54 -0
  98. data/lib/selenium/webdriver/ie.rb +32 -10
  99. data/lib/selenium/webdriver/remote/bridge.rb +117 -572
  100. data/lib/selenium/webdriver/remote/capabilities.rb +116 -99
  101. data/lib/selenium/webdriver/remote/driver.rb +51 -0
  102. data/lib/selenium/webdriver/remote/http/common.rb +54 -23
  103. data/lib/selenium/webdriver/remote/http/curb.rb +30 -12
  104. data/lib/selenium/webdriver/remote/http/default.rb +85 -42
  105. data/lib/selenium/webdriver/remote/http/persistent.rb +29 -7
  106. data/lib/selenium/webdriver/remote/oss/bridge.rb +594 -0
  107. data/lib/selenium/webdriver/remote/oss/commands.rb +223 -0
  108. data/lib/selenium/webdriver/remote/response.rb +68 -30
  109. data/lib/selenium/webdriver/remote/server_error.rb +22 -5
  110. data/lib/selenium/webdriver/remote/w3c/bridge.rb +605 -0
  111. data/lib/selenium/webdriver/remote/w3c/capabilities.rb +310 -0
  112. data/lib/selenium/webdriver/remote/w3c/commands.rb +157 -0
  113. data/lib/selenium/webdriver/remote.rb +27 -13
  114. data/lib/selenium/webdriver/safari/bridge.rb +38 -107
  115. data/lib/selenium/webdriver/safari/driver.rb +68 -0
  116. data/lib/selenium/webdriver/safari/options.rb +56 -75
  117. data/lib/selenium/webdriver/safari/service.rb +38 -0
  118. data/lib/selenium/webdriver/safari.rb +49 -31
  119. data/lib/selenium/webdriver/support/abstract_event_listener.rb +40 -6
  120. data/lib/selenium/webdriver/support/block_event_listener.rb +24 -7
  121. data/lib/selenium/webdriver/support/color.rb +82 -46
  122. data/lib/selenium/webdriver/support/escaper.rb +43 -0
  123. data/lib/selenium/webdriver/support/event_firing_bridge.rb +56 -39
  124. data/lib/selenium/webdriver/support/select.rb +66 -89
  125. data/lib/selenium/webdriver/support.rb +20 -0
  126. data/lib/selenium/webdriver/version.rb +24 -0
  127. data/lib/selenium/webdriver.rb +55 -25
  128. data/lib/selenium-webdriver.rb +19 -0
  129. data/selenium-webdriver.gemspec +42 -29
  130. metadata +331 -260
  131. data/Gemfile.lock +0 -48
  132. data/lib/selenium/client/base.rb +0 -132
  133. data/lib/selenium/client/driver.rb +0 -10
  134. data/lib/selenium/client/errors.rb +0 -9
  135. data/lib/selenium/client/extensions.rb +0 -118
  136. data/lib/selenium/client/idiomatic.rb +0 -488
  137. data/lib/selenium/client/javascript_expression_builder.rb +0 -116
  138. data/lib/selenium/client/javascript_frameworks/jquery.rb +0 -13
  139. data/lib/selenium/client/javascript_frameworks/prototype.rb +0 -13
  140. data/lib/selenium/client/legacy_driver.rb +0 -1720
  141. data/lib/selenium/client/protocol.rb +0 -104
  142. data/lib/selenium/client/selenium_helper.rb +0 -34
  143. data/lib/selenium/client.rb +0 -38
  144. data/lib/selenium/rake/server_task.rb +0 -157
  145. data/lib/selenium/webdriver/android/bridge.rb +0 -49
  146. data/lib/selenium/webdriver/android.rb +0 -9
  147. data/lib/selenium/webdriver/common/core_ext/base64.rb +0 -9
  148. data/lib/selenium/webdriver/common/core_ext/dir.rb +0 -42
  149. data/lib/selenium/webdriver/common/core_ext/string.rb +0 -5
  150. data/lib/selenium/webdriver/common/driver_extensions/has_browser_connection.rb +0 -17
  151. data/lib/selenium/webdriver/common/driver_extensions/has_input_devices.rb +0 -39
  152. data/lib/selenium/webdriver/common/html5/location.rb +0 -0
  153. data/lib/selenium/webdriver/common/json_helper.rb +0 -34
  154. data/lib/selenium/webdriver/firefox/bridge.rb +0 -70
  155. data/lib/selenium/webdriver/firefox/socket_lock.rb +0 -61
  156. data/lib/selenium/webdriver/ie/bridge.rb +0 -69
  157. data/lib/selenium/webdriver/ie/server.rb +0 -90
  158. data/lib/selenium/webdriver/iphone/bridge.rb +0 -45
  159. data/lib/selenium/webdriver/iphone.rb +0 -9
  160. data/lib/selenium/webdriver/opera/bridge.rb +0 -112
  161. data/lib/selenium/webdriver/opera/service.rb +0 -49
  162. data/lib/selenium/webdriver/opera.rb +0 -24
  163. data/lib/selenium/webdriver/phantomjs/bridge.rb +0 -59
  164. data/lib/selenium/webdriver/phantomjs/service.rb +0 -90
  165. data/lib/selenium/webdriver/phantomjs.rb +0 -22
  166. data/lib/selenium/webdriver/remote/commands.rb +0 -192
  167. data/lib/selenium/webdriver/safari/browser.rb +0 -20
  168. data/lib/selenium/webdriver/safari/extensions.rb +0 -170
  169. data/lib/selenium/webdriver/safari/resources/SafariDriver.safariextz +0 -0
  170. data/lib/selenium/webdriver/safari/resources/client.js +0 -6903
  171. data/lib/selenium/webdriver/safari/server.rb +0 -145
  172. data/lib/selenium-client.rb +0 -2
data/CHANGES CHANGED
@@ -1,4 +1,796 @@
1
- 2.45.0 (2014-02-28)
1
+ 3.142.7 (2019-12-27)
2
+ ====================
3
+
4
+ Ruby:
5
+ * Fix keyword argument deprecations in Ruby 2.7 (thanks @connorshea)
6
+
7
+ 3.142.6 (2019-10-04)
8
+ ====================
9
+
10
+ Ruby:
11
+ * Loosen ChildProcess dependency so that 3.0+ can be used (thanks @jaredbeck)
12
+
13
+ 3.142.5 (2019-10-01)
14
+ ====================
15
+
16
+ Ruby:
17
+ * Loosen RubyZip dependency so that 1.3+ can be used (thanks @vtamara)
18
+
19
+ 3.142.4 (2019-09-02)
20
+ ====================
21
+
22
+ Chrome:
23
+ * Added support for new command for getting logs in ChromeDriver 76+
24
+ with W3C mode on
25
+
26
+ 3.142.3 (2019-05-21)
27
+ ====================
28
+
29
+ Firefox:
30
+ * Fixed a regression when Firefox binary path was not sent to GeckoDriver
31
+ by default and browser could not be located (issue #7219)
32
+
33
+
34
+ 3.142.2 (2019-05-11)
35
+ ====================
36
+
37
+ Chrome:
38
+ * Fixed an issue when getting/setting network conditions and sending CDP
39
+ commands didn't work with Grid (issue #7174)
40
+
41
+ Safari:
42
+ * Fixed an issue when getting/setting permissions and attaching debugger
43
+ didn't work with Grid (issue #7174)
44
+
45
+ 3.142.1 (2019-05-07)
46
+ ====================
47
+
48
+ Firefox:
49
+ * Fixed an issue when processing error in legacy driver would result
50
+ in NoMethodError (issue #7178)
51
+
52
+ 3.142.0 (2019-04-24)
53
+ ====================
54
+
55
+ Ruby:
56
+ * Fixed an issue when services are not shutdown properly
57
+
58
+ Firefox:
59
+ * Fixed an issue when passing :profile string to Firefox::Options.new would
60
+ result in NoMethodError. Now it will find a profile with such name on your
61
+ system and use it accordingly (issue #7119)
62
+ * Fixed an issue when instantiating Firefox driver with capabilities having
63
+ :marionette would result in NoMethodError (issue #7120)
64
+
65
+ 3.141.5926 (2019-04-18)
66
+ =======================
67
+
68
+ Ruby:
69
+ * Fixed an issue when Selenium itself would print deprecation warning
70
+ for TimeoutError
71
+ * Fixed a regression when socket poller would raise Errno::EBADF on JRuby
72
+
73
+ 3.141.592 (2019-04-18)
74
+ ======================
75
+
76
+ Ruby:
77
+ * Updated minimum required Ruby version to 2.3
78
+ * Added support for ChildProcess 1.x
79
+ * Improved socket connection waiting (thanks @N0xFF)
80
+ * Changed waiting to use monotonic clock instead of Time class to avoid
81
+ collisions with Timecop and similar gems
82
+ * Removed deprecated PortProber.random
83
+ * Added strictFileInteractability to the list of known capabilities
84
+ * Added InsecureCertificateError
85
+ * Added support for setting SOCKS version in proxy (issue #6938)
86
+ * Implemented new window command using driver.manage.new_window. The command
87
+ is supported by recent Firefox, Safari and IE drivers (thanks @dylanlive)
88
+ * Added support for passing proc to driver_path setter in Service classes
89
+ * Deprecated all errors which don't exist in WebDriver specification
90
+ * Deprecated TouchActionBuilder which is not a part of WebDriver specification
91
+ and is only supported by Chrome, but is likely to be dropped in v75.
92
+ ActionBuilder should be used instead
93
+ * Deprecated using Remote::W3C::Capabilities in favor of Remote::Capabilities
94
+
95
+ Chrome:
96
+ * Added support for execute CDP commands using Driver#execute_cdp
97
+ * Removed GPU disabling in ChromeDriver when using Options#headless!
98
+ * Switched suggested download URL to HTTPS (thanks @JLLeitschuh)
99
+ * Added support for instantiating service class directly and moved all driver
100
+ executable configuration there (command-line arguments, port, etc.)
101
+ Passing driver_opts, driver_path and port to driver initializer is now
102
+ deprecated so use Selenium::WebDriver::Service.chrome instead, which allows
103
+ to customize executable behavior in similar way. Once initialized, this
104
+ object can be passed as :service keyword during driver initialization.
105
+ * Deprecated Chrome.driver_path= in favor of Service::Chrome.driver_path=
106
+
107
+ Edge:
108
+ * Added support for instantiating service class directly and moved all driver
109
+ executable configuration there (command-line arguments, port, etc.)
110
+ Passing driver_opts, driver_path and port to driver initializer is now
111
+ deprecated so use Selenium::WebDriver::Service.firefox instead, which allows
112
+ to customize executable behavior in similar way. Once initialized, this
113
+ object can be passed as :service keyword during driver initialization
114
+ * Deprecated Edge.driver_path= in favor of Service::Edge.driver_path=
115
+
116
+ Firefox:
117
+ * Deprecated legacy driver in favor of GeckoDriver
118
+ * Fixed Firefox path lookup on Cygwin (issue #6908)
119
+ * Added support for instantiating service class directly and moved all driver
120
+ executable configuration there (command-line arguments, port, etc.)
121
+ Passing driver_opts, driver_path and port to driver initializer is now
122
+ deprecated so use Selenium::WebDriver::Service.firefox instead, which allows
123
+ to customize executable behavior in similar way. Once initialized, this
124
+ object can be passed as :service keyword during driver initialization
125
+ * Deprecated Firefox.driver_path= in favor of Service::Firefox.driver_path=
126
+ * Deprecated outdated capabilities
127
+
128
+ IE:
129
+ * Fixed an issue when native events could not be disabled using IE::Options
130
+ initializer
131
+ * Added support for instantiating service class directly and moved all driver
132
+ executable configuration there (command-line arguments, port, etc.)
133
+ Passing driver_opts, driver_path and port to driver initializer is now
134
+ deprecated so use Selenium::WebDriver::Service.ie instead, which allows
135
+ to customize executable behavior in similar way. Once initialized, this
136
+ object can be passed as :service keyword during driver initialization
137
+ * Deprecated IE.driver_path= in favor of Service::IE.driver_path=
138
+
139
+ Safari:
140
+ * Added support for instantiating service class directly and moved all driver
141
+ executable configuration there (command-line arguments, port, etc.)
142
+ Passing driver_opts, driver_path and port to driver initializer is now
143
+ deprecated so use Selenium::WebDriver::Service.safari instead, which allows
144
+ to customize executable behavior in similar way. Once initialized, this
145
+ object can be passed as :service keyword during driver initialization
146
+ * Deprecated Safari.driver_path= in favor of Service::Safari.driver_path=
147
+
148
+ Remote:
149
+ * Change default HTTP client to use persistent connections
150
+
151
+ 3.141.0 (2018-10-31)
152
+ ====================
153
+
154
+ Edge:
155
+ * Added new Edge::Options class that should be used to customize browser
156
+ behavior. The instance of options class can be passed to driver
157
+ initialization using :options key. Please, note that using options require
158
+ insiders builds of Edge.
159
+
160
+ Chrome:
161
+ * Included HasLocation to Chrome driver (thanks @sidonath).
162
+ * Updated endpoint to send Chrome Debugging Protocol commands. The old one
163
+ has been deprecated in ChromeDriver 40.
164
+
165
+ Safari:
166
+ * Added new Safari::Options class that should be used to customize browser
167
+ behavior. The instance of options class can be passed to driver
168
+ initialization using :options key. Please, note that using options require
169
+ Safari 12+.
170
+
171
+ Remote:
172
+ * Allow passing Options instances to remote driver initialization using
173
+ :options key. This feature allows to use browser-specific options classes
174
+ (Chrome::Options, Firefox::Options, etc.) and pass them to Server/Grid
175
+ instead of capabilities.
176
+
177
+ 3.14.1 (2018-10-03)
178
+ ===================
179
+
180
+ Ruby:
181
+ * Added a workaround to ignore Errno::EALREADY error when starting drivers
182
+ on Windows Subsystem for Linux
183
+ * Changed default pause duration to 0 for Selenium::WebDriver::Driver#action#pause (thanks @twalpole)
184
+ * Deprecated Selenium::WebDriver::PortProber#random
185
+ in favor of Selenium::WebDriver::PortProber#above
186
+ * Fixed a bug when Selenium::WebDriver::Element#drag_and_drop would not
187
+ work in certain cases
188
+ * Updated RubyZip dependency to 1.2.2 which fixes security vulnerability
189
+
190
+ Edge:
191
+ * Added support for --silent driver flag
192
+ * Fixed an incorrect dash symbol when passing arguments to MicrosoftWebDriver.exe
193
+
194
+ Firefox:
195
+ * Fixed an incorrect dash symbol when passing arguments to GeckoDriver
196
+
197
+ Safari:
198
+ * Fixed a bug when Selenium::WebDriver::Element#displayed? would raise error
199
+ in Safari 12
200
+
201
+ 3.14.0 (2018-08-03)
202
+ ===================
203
+
204
+ Ruby:
205
+ * Allow to customize default duration of movement of pointer actions using
206
+ Driver#action#default_move_duration= (thanks @prakharrr)
207
+ * Fixed an accidentally removed Selenium::WebDriver::Error::TimeoutError (thanks @twalpole)
208
+
209
+ Server:
210
+ * Fixed an issue when Server.latest couldn't parse the version
211
+
212
+ Remote:
213
+ * Added support for uploading multiple files by passing them as a string
214
+ separated by \n to Element#send_keys. Please, note that not all the drivers
215
+ have multiple file upload implemented (tested to work in ChromeDriver).
216
+
217
+ 3.13.1 (2018-07-20)
218
+ ===================
219
+
220
+ Chrome:
221
+ * Fixed an issue when empty Chrome options would cause DevToolsActivePort issue (thanks @artplan1)
222
+
223
+ Remote:
224
+ * Support detecting local files (thanks @mskvn)
225
+
226
+ 3.13.0 (2018-06-25)
227
+ ===================
228
+
229
+ Ruby:
230
+ * Address warnings for redefined methods and uninitialized instance variables
231
+
232
+ Chrome:
233
+ * Chrome options capabilities updated to use goog:chromeOptions.
234
+ Note that Selenium now requires ChromeDriver v2.31 at minimum.
235
+ * Added ability to tell headless Chrome to save files using Driver#download_path= (thanks @pelly)
236
+
237
+ 3.12.0 (2018-05-08)
238
+ ===================
239
+
240
+ Ruby:
241
+ * Added User-Agent header to requests from Selenium to give remote
242
+ ends more visibility into distribution of clients (thanks @sah)
243
+ * Added Selenium::WebDriver::VERSION constant (thanks @sah)
244
+ * Added changelog link to RubyGems page
245
+ * Fixed a bug when requests were sent with empty Content-Type,
246
+ which should instead be application/json (issue #5615 and #5659)
247
+ * Fixed a bug when failed connection attempt was retried without
248
+ grace period for remote to resolve its problem (thanks @amckinley42)
249
+ * Fixed a bug with accidentally removed HasNetworkConnection driver extension
250
+
251
+ Chrome:
252
+ * Fixed a bug when deprecation message for using Chrome extensions
253
+ was incorrectly shown (thanks @treby)
254
+
255
+ Safari:
256
+ * Added support getting permissions via Driver#permissions
257
+ * Added support setting permissions via Driver#permissions=
258
+ * Added support enabling web inspector via Driver#attach_debugger
259
+
260
+ 3.11.0 (2018-03-11)
261
+ ===================
262
+
263
+ Ruby:
264
+ * No changes in Ruby bindings for this release
265
+
266
+ 3.10.0 (2018-03-02)
267
+ ===================
268
+
269
+ Ruby:
270
+ * Added Errno::EAFNOSUPPORT to the list of ignored errors when finding port (thanks @jtarchie)
271
+ * Added automatic conversion of noProxy to the list of strings as required
272
+ by W3C WebDriver Specification (issue #5004)
273
+
274
+ Chrome:
275
+ * Added Chrome::Options#headless! shortcut to enable headless mode (thanks @pulkitsharma07)
276
+
277
+ IE:
278
+ * Added support for getting local storage using Driver#local_storage
279
+ * Added support for getting session storage using Driver#session_storage
280
+
281
+ 3.9.0 (2018-02-06)
282
+ ==================
283
+
284
+ Ruby:
285
+ * Fixed a bug when omitted capabilities caused NoMethodError (issue #5185)
286
+ * Fixed a bug when getting page source in W3C dialect caused WebDriverError (thanks @KazuCocoa)
287
+ * Fixed a bug when getting backtrace of server error would case NoMethodError (thanks @mcking49)
288
+ * Updated YARD to ~> 0.9.11
289
+ * Updated rubyzip to ~> 1.2 (thanks @michaelglass)
290
+
291
+ Chrome:
292
+ * Added support for getting network conditions via Driver#network_conditions
293
+ * Added support for setting network conditions via Driver#network_conditions=
294
+ * Added support to allow driver respond with custom error codes (issue #5376)
295
+
296
+ Firefox:
297
+ * Improved GeckoDriver binary lookup mechanism (issue #5240)
298
+
299
+ 3.8.0 (2017-12-01)
300
+ ==================
301
+
302
+ Ruby:
303
+ * Removed deprecated Alert#authenticate
304
+ * Removed deprecated :port initialization argument of Remote::Bridge.
305
+ Use :url instead.
306
+ * Removed deprecated Selenium::WebDriver::Remote::W3CCapabilities.
307
+ Use Selenium::WebDriver::Remote::Capabilities instead.
308
+
309
+ IE:
310
+ * Remove deprecated :log_file driver initialization argument.
311
+ Use driver_opts: {log_file: ''} instead.
312
+ * Remove deprecated :log_level driver initialization argument.
313
+ Use driver_opts: {log_level: ''} instead.
314
+ * Remove deprecated :implementation driver initialization argument.
315
+ Use driver_opts: {implementation: ''} instead.
316
+ * Removed deprecated :service_args driver initialization argument.
317
+ Use driver_opts: {args: ['--some-switch']} instead.
318
+
319
+ Chrome:
320
+ * Removed deprecated :service_log_path driver initialization argument.
321
+ Use driver_opts: {log_path: 'path'} instead.
322
+ * Removed deprecated :service_args driver initialization argument.
323
+ Use driver_opts: {args: ['--some-switch']} instead.
324
+
325
+ Firefox:
326
+ * Removed deprecated :service_args driver initialization argument.
327
+ Use driver_opts: {args: ['--some-switch']} instead.
328
+
329
+ Safari:
330
+ * Removed deprecated :service_args driver initialization argument.
331
+ Use driver_opts: {args: ['--some-switch']} instead.
332
+
333
+ Edge:
334
+ * Removed deprecated :service_args driver initialization argument.
335
+ Use driver_opts: {args: ['--some-switch']} instead.
336
+
337
+ 3.7.0 (2017-11-03)
338
+ ==================
339
+
340
+ Ruby:
341
+ * Added //rb:lint task to check codebase using RuboCop (thanks @RustyNail)
342
+ * Fixed codebase to comply more to Ruby community style guide (thanks @RustyNail)
343
+ * Packaged all dependencies to Selenium repository so that non-Ruby committers
344
+ can build and test Ruby bindings easier
345
+ * Update errors list according to latest changes of specification (thanks @jaysonesmith)
346
+
347
+ Firefox:
348
+ * Added Firefox::Options#headless! shortcut to enable headless mode (thanks @franzliedke)
349
+
350
+ 3.6.0 (2017-09-25)
351
+ ==================
352
+
353
+ Edge:
354
+ * Fixed a bug when execute_script failed using server + Edge (issue #4651)
355
+
356
+ Firefox:
357
+ * Fixed a bug when web extension failed to install using profile class (issue #4093)
358
+
359
+ PhantomJS:
360
+ * Support is deprecated in favor of headless Chrome/Firefox or HTMLUnit.
361
+ PhantomJS is no longer actively developed, and support will eventually
362
+ be dropped.
363
+
364
+ 3.5.2 (2017-09-07)
365
+ ==================
366
+
367
+ Ruby:
368
+ * Removed platformVersion from W3C payload (issue #4641)
369
+ * Fixed a bug when proxy type was not compliant to specification (issue #4574)
370
+ * Added support for passing speed to flick action (issue #4549)
371
+ * Using TouchActionBuilder no longer prints mouse/key deprecations
372
+ * Deprecated Alert#authenticate
373
+ * Added support for DEBUG environment variable which enables full debug mode in gem
374
+
375
+ Firefox:
376
+ * Fixed a bug when page load timeout was not properly constructed in new session payload
377
+ * Fixed a bug when GeckoDriver error stacktrace was not displayed (issue #3683)
378
+
379
+ Chrome:
380
+ * Added workaround for the case when findElements call returns null (issue #4555)
381
+ * Chrome::Driver now includes touch actions by default
382
+
383
+ 3.5.1 (2017-08-15)
384
+ ==================
385
+
386
+ Ruby:
387
+ * Fixed a bug when Chrome/Firefox (and probably other) drivers could not be
388
+ started on JRuby (issue #4453).
389
+
390
+ 3.5.0 (2017-08-10)
391
+ ==================
392
+
393
+ Firefox:
394
+ * Firefox subprocess output is now only redirected when debug is set (issue #4311)
395
+ * Fixed a bug where non-integers could be sent when setting window rect
396
+ * Fixed Firefox location detection on Windows_x64 (thanks kamenlitchev)
397
+ * Fixed passing of profile with a W3C compatible remote end
398
+
399
+ IE:
400
+ * Added new IE::Options class that should be used to customize browser
401
+ behavior (native events, element scroll behavior, etc).
402
+ The instance of options class can be passed to driver initialization using
403
+ :options key. Old way of passing these customization directly to driver
404
+ initialization is deprecated.
405
+
406
+ 3.4.4 (2017-07-13)
407
+ ==================
408
+
409
+ Firefox:
410
+ * Added support for GeckoDriver install addon command (issue 4215).
411
+ * Added support for GeckoDriver uninstall addon command (issue 4215).
412
+ * Raise error when passing :firefox_options as capability.
413
+
414
+ Ruby:
415
+ * Fixed a bug when childprocess were leaking /dev/null file descriptor (issue 4285).
416
+ * Make Remote::Driver class so that it can be inherited from.
417
+
418
+ 3.4.3 (2017-06-16)
419
+ ==================
420
+
421
+ Ruby:
422
+ * Fixed a regression when passing symbol as :desired_capabilities caused NoMethodError (issue 4187).
423
+
424
+ 3.4.2 (2017-06-14)
425
+ ==================
426
+
427
+ Ruby:
428
+ * Added unhandledPromptBehavior to the list of known capabilities.
429
+ * Added timeouts to the list of known capabilities.
430
+ * Fixed a regression when passing hash as :desired_capabilities caused NoMethodError (issue 4172, thanks Thomas Walpole).
431
+ * Fixed a regression when extension capabilities (the ones that have ":" inside)
432
+ were filtered out when doing protocol handshake.
433
+ * Improved handling of capability names passed as plain camelCased strings
434
+ vs Rubyish snake_cased symbols when doing protocol handshake.
435
+
436
+ Chrome:
437
+ * Fixed a regression when passing :switches to driver initialization was ignored.
438
+
439
+ 3.4.1 (2017-06-13)
440
+ ==================
441
+
442
+ Ruby:
443
+ * Implemented a new dual-dialect mechanism for communication with drivers
444
+ (a.k.a. protocol handshake). There shouldn't be any noticeable differences
445
+ but since this is a significant refactoring of internal APIs, some bugs
446
+ could slip into the release.
447
+ * Renamed ElementClickIntercepted to ElementClickInterceptedError.
448
+ * Renamed ElementNotInteractable to ElementNotInteractableError.
449
+ * Deprecated W3CCapabilities in favor of Capabilities (it was meant to be private API).
450
+ * Added a warning when trying to save screenshot without .png extension (thanks @abotalov).
451
+
452
+ IE:
453
+ * Added support for both old IEDriver which uses OSS dialect of JSON wire
454
+ protocol (<= 3.4.0) and new IEDriver which uses W3C dialect (not yet released).
455
+
456
+ Safari:
457
+ * Removed runtime dependencies used for old SafariDriver (u.g. websocket).
458
+
459
+ Chrome:
460
+ * Added new Chrome::Options class that should be used to customize browser
461
+ behavior (command line arguments, extensions, preferences, mobile emulation, etc.).
462
+ The instance of options class can be passed to driver initialization using
463
+ :options key. Old way of passing these customization directly to driver
464
+ initialization is deprecated.
465
+
466
+ Firefox:
467
+ * Added new Firefox::Options class that should be used to customize browser
468
+ behavior (command line arguments, profile, preferences, Firefox binary, etc.).
469
+ The instance of options class can be passed to driver initialization using
470
+ :options key. Old way of passing these customization directly to driver
471
+ initialization is deprecated.
472
+
473
+ 3.4.0 (2017-04-21)
474
+ ===================
475
+
476
+ Edge:
477
+ * Fix bug when response is not wrapped with "value"
478
+
479
+ Firefox:
480
+ * Support geckodriver v0.16
481
+
482
+ Ruby:
483
+ * Support ElementClickIntercepted error from W3C spec
484
+ * Support ElementNotInteractable error from W3C spec
485
+ * Implement window rect commands
486
+ * Implement window minimize command
487
+
488
+ 3.3.0 (2017-03-07)
489
+ ===================
490
+
491
+ Firefox:
492
+ * geckodriver v0.15 or later is required
493
+
494
+ W3C:
495
+ * Support for command response data to be wrapped in a 'value' key
496
+ * Support for updated timeout formats
497
+
498
+ 3.2.2 (2017-03-01)
499
+ ===================
500
+
501
+ Ruby:
502
+ * Fix bug for supporting Logger output on Ruby versions < 2.3
503
+ * Add more logging and adjust output levels
504
+
505
+ Remote:
506
+ * Support for creating Remote session with browser name and url parameters
507
+
508
+ 3.2.1 (2017-02-24)
509
+ ===================
510
+
511
+ Ruby:
512
+ * Fix bug for supporting Logger on Ruby versions < 2.3
513
+
514
+ 3.2.0 (2017-02-22)
515
+ ===================
516
+
517
+ Ruby:
518
+ * Implement new Logger class
519
+ * Fix issue with chromedriver process leader incompatibility on Win7 (issue 3512)
520
+
521
+ 3.1.0 (2017-02-14)
522
+ ===================
523
+
524
+ Firefox:
525
+ * implement W3C actions endpoint
526
+
527
+ 3.0.8 (2017-02-08)
528
+ ===================
529
+
530
+ Firefox:
531
+ * Fix signature of element returned from #active_element
532
+
533
+ 3.0.7 (2017-02-06)
534
+ ===================
535
+
536
+ Firefox:
537
+ * Fix signature of element arrays returned from #find_elements (issue 3471)
538
+
539
+ 3.0.6 (2017-02-05)
540
+ ===================
541
+
542
+ Firefox:
543
+ * Implement W3C window position
544
+ * Update implementation for W3C send text to alert
545
+ * Implement timeout settings
546
+ * Remove default capabilities (thanks lmtierney)
547
+ * Fix signature of elements returned from #execute_script (thanks Thomas Walpole)
548
+
549
+ 3.0.5 (2016-12-27)
550
+ ===================
551
+
552
+ Ruby:
553
+ * Support for Ruby 2.4.0 (Thanks jamespdo)
554
+
555
+ 3.0.4 (2016-12-21)
556
+ ===================
557
+
558
+ Firefox:
559
+ * Implement profile support via geckodriver (#2933 thanks lmtierney)
560
+
561
+ Ruby:
562
+ * Fix bug preventing use of Curb client (#2951 thanks clarkenciel)
563
+ * Support Net::HTTP::Persistent version 3 (#3219 thanks Pete Johns)
564
+ * Allow Net::HTTP::Default to set open_timout and read_timeout independently (#3264 thanks richseviora)
565
+ * Change default for Net::HTTP::Default#open_timeout to facilitate debuggers (#3264 thanks richseviora)
566
+
567
+ 3.0.3 (2016-11-26)
568
+ ===================
569
+
570
+ Ruby:
571
+ * Allow drivers to be executed from batch files on Windows
572
+
573
+ 3.0.2 (2016-11-25)
574
+ ===================
575
+
576
+ Ruby:
577
+ * Implement #driver_path as parameter when initializing a driver (thanks lmtierney)
578
+ * Improve Ruby syntax in driver commands (thanks joe_schulte)
579
+ * Improve performance when shutting down drivers (thanks lmtierney)
580
+ * Fix bug for finding open ports on Windows (thanks kou1okada)
581
+ * Fix bug in auto detection of drivers which allowed selection of non-executable binaries
582
+
583
+ W3C:
584
+ * Implement #cookie_named and #delete_all_cookies methods (thanks lmtierney)

585
+ * Implement element #property method (thanks lmtierney)

586
+
587
+ Chrome:
588
+ * Fix bug in switches (thanks danvine)

589
+
590
+ 3.0.1 (2016-11-06)
591
+ ===================
592
+
593
+ Ruby:
594
+ * Always send JSON Wire Protocol commands to server instead of W3C commands
595
+
596
+ 3.0.0 (2016-10-13)
597
+ ===================
598
+
599
+ Firefox:
600
+ * Update :firefox_options support for geckodriver 0.11
601
+
602
+ 3.0.0.beta4 (2016-09-29)
603
+ ===================
604
+
605
+ Ruby:
606
+ * Remove support for deprecated driver options
607
+ * Add support for latest driver options
608
+ * Add support for :port parameter for launching driver
609
+ * Add support for :service_args parameter for driver command line switches
610
+ * Improve reliability by increasing service shutdown timeout (#2815; thanks John Barbuto )

611
+
612
+ Firefox:
613
+ * Add support for :firefox_options in geckodriver
614
+
615
+ Safari:
616
+ * Remove support for legacy Safari driver (use Apple's driver built in to Safari 10+)
617
+
618
+ Chrome:
619
+ * Set chromedriver to not log by default
620
+
621
+ 3.0.0.beta3.1 (2016-09-03)
622
+ ===================
623
+
624
+ Firefox:
625
+ * Fixed bug - legacy firefox extension included in gem
626
+
627
+ 3.0.0.beta3 (2016-09-01)
628
+ ===================
629
+
630
+ Firefox:
631
+ * Implemented w3c getAttribute with javascript atom
632
+
633
+ 3.0.0.beta2.1 (2016-08-03)
634
+ ===================
635
+
636
+ Ruby:
637
+ * Fixed bug in collections
638
+
639
+ 3.0.0.beta2 (2016-08-02)
640
+ ===================
641
+
642
+ Firefox:
643
+ * Fixed bug with form submission
644
+ * Improved w3c element handling
645
+
646
+ 3.0.0.beta1 (2016-07-28)
647
+ ===================
648
+
649
+ Ruby:
650
+ * Remove support for RC client
651
+ * Remove support for Ruby < 2.0
652
+ * Update code to support designated style guidelines
653
+ * Chrome/GeckoDriver/PhantomJS/IE/Edge drivers are refactored to use standard
654
+ service class (issue 1797)
655
+ * Option `:timeout` was removed from IE server (issue 1797)
656
+
657
+ Chrome:
658
+ * Remove override of default chromedriver behavior for chrome.detach (issue 2418)
659
+
660
+ Firefox:
661
+ * Rename wires to geckodriver
662
+ * Change default usage from FirefoxDriver to geckodriver
663
+
664
+ Safari:
665
+ * Initial support for Apple's Safari Driver in Sierra (issue #2475)
666
+
667
+ Android and iPhone:
668
+ * Remove support for deprecated classes (Issue #2476)
669
+
670
+ 2.53.0 (2016-03-15)
671
+ ===================
672
+
673
+ Ruby:
674
+ * Removed dependency on "multi_json" (issue 1632)
675
+ * Properly handle namespaces in install manifest of Firefox add-ons (issue 1143)
676
+ * Improve error handling when stopping browsers (thanks bsedat)
677
+ * Fix deselecting options in select lists (thanks glib-briia)
678
+ * Fix w3c error handling
679
+ * Update w3c Capabilities support
680
+
681
+ IE:
682
+ * support for alert credentials (issue #1698, thanks Alan Baird & trabulmonkee)
683
+
684
+ 2.52.0 (2016-02-12)
685
+ ===================
686
+
687
+ No Ruby changes in this release.
688
+
689
+ 2.51.0 (2016-02-05)
690
+ ===================
691
+
692
+ No Ruby changes in this release.
693
+
694
+ 2.50.0 (2016-01-27)
695
+ ===================
696
+
697
+ Firefox:
698
+ * Fix bug for locating binary in local path (issue 1523, thanks Gopal Patel)
699
+
700
+ 2.49.0 (2016-01-13)
701
+ ===================
702
+
703
+ Ruby:
704
+ * support for SessionNotCreatedError (thanks Alexander Bayandin)
705
+
706
+ Safari:
707
+ * Limit support to OS X (issue 1186)
708
+ * support for multiple concurrent drivers
709
+
710
+ PhantomJS:
711
+ * Implement Socket locking
712
+
713
+ IE:
714
+ * support for multiple concurrent drivers
715
+
716
+ Chrome:
717
+ * prevent 404 error when shutting down Chrome service (thanks Fumiaki MATSUSHIMA)
718
+ * logging turned on by default
719
+ * support local storage capabilities
720
+
721
+ Firefox:
722
+ * support setting the location of Firefox binary to use when run locally
723
+ * add default lookup of Homebrew Cask default directory (issue 1437)
724
+
725
+ W3C Specification:
726
+ * support for using with Remote WebDriver
727
+ * implement window size command
728
+ * implement window position command
729
+ * implement element size command
730
+ * implement element position command
731
+ * implement full screen window command
732
+ * implement page source command
733
+
734
+ 2.48.1 (2015-10-13)
735
+ ===================
736
+
737
+ Firefox:
738
+ * Mozilla's Wires Driver for Marionette works with Remote WebDriver
739
+
740
+ 2.48.0 (2015-10-07)
741
+ ===================
742
+
743
+ Firefox:
744
+ * Initial implementation of Mozilla's Wires Driver for Marionette; Supported in version 43 and higher
745
+
746
+ Edge:
747
+ * Fix execution with Remote Server
748
+ * Fix Javascript Execution
749
+ * Implement Alert Handling
750
+ * Implement Window Switching
751
+
752
+ Ruby:
753
+ * Initial implementation of W3C WebDriver syntax to support Mozilla Wires
754
+ * Change to RSpec expect syntax
755
+ * Specs can be run from relative directories
756
+
757
+
758
+ 2.47.1 (2015-07-31)
759
+ ===================
760
+
761
+ Edge:
762
+ * Initial implementation of Microsoft's EdgeDriver
763
+
764
+
765
+ 2.47.0 (2015-07-29)
766
+ ===================
767
+
768
+ Safari:
769
+ * Remove support for installing additional extensions due to architectural changes introduced with Safari 7
770
+
771
+ 2.46.2 (2015-06-05)
772
+ ===================
773
+ * Fix encoding issue which prevents Element#send_keys to work on Ruby < 2.0 (#621)
774
+
775
+ 2.46.1 (2015-06-04)
776
+ ===================
777
+ * Fix aborted rubygems.org release
778
+
779
+ 2.46.0 (2015-06-04)
780
+ ===================
781
+
782
+ Firefox:
783
+ * Support for Firefox 38
784
+ * Fix performance bug by not forcing garbage collection in httpd.js
785
+
786
+ Chrome:
787
+ * Fixed ChromeDriver port race condition (#449 - thanks Jason Anderson)
788
+
789
+ Ruby changes:
790
+ * Retry binding to ports unavailable by EADDRNOTAVAIL (#394).
791
+ * Remove Presto-Opera support (Blink-based Opera still supported)
792
+
793
+ 2.45.0 (2015-02-28)
2
794
  ===================
3
795
 
4
796
  Firefox:
@@ -320,7 +1112,7 @@ IE:
320
1112
 
321
1113
  * Add Selenium::WebDriver::Window#maximize (#3489)
322
1114
  * Safari:
323
- * New driver! See http://code.google.com/p/selenium/wiki/SafariDriver.
1115
+ * New driver! See https://github.com/SeleniumHQ/selenium/wiki/SafariDriver.
324
1116
  * Firefox:
325
1117
  * Significant stability improvements.
326
1118
  * Native events support for Firefox 11
@@ -666,7 +1458,7 @@ IE:
666
1458
  0.2.0 (2011-04-22)
667
1459
  ==================
668
1460
 
669
- * Update Ruby bindings to use the rewritten Chrome driver (see http://code.google.com/p/selenium/wiki/ChromeDriver).
1461
+ * Update Ruby bindings to use the rewritten Chrome driver (see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver).
670
1462
  * Add deprecation warning for WebDriver::Element#value (use Element#attribute("value") instead).
671
1463
  * Change the default timeout for Wait instances to 5 seconds.
672
1464
  * Fix bug where locators would fail if Object.prototype had been modified.