selenium-webdriver 2.45.0 → 3.142.7

Sign up to get free protection for your applications and to get access to all the features.
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.