selenium-webdriver 2.53.3 → 3.142.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +665 -8
  3. data/Gemfile +2 -0
  4. data/LICENSE +1 -1
  5. data/README.md +2 -3
  6. data/lib/selenium/server.rb +76 -73
  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/{phantomjs.rb → atoms.rb} +10 -14
  10. data/lib/selenium/webdriver/chrome/bridge.rb +30 -101
  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 +21 -20
  14. data/lib/selenium/webdriver/chrome/service.rb +26 -93
  15. data/lib/selenium/webdriver/chrome.rb +15 -6
  16. data/lib/selenium/webdriver/common/action_builder.rb +52 -58
  17. data/lib/selenium/webdriver/common/alert.rb +7 -15
  18. data/lib/selenium/webdriver/common/bridge_helper.rb +18 -22
  19. data/lib/selenium/webdriver/common/driver.rb +72 -72
  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_input_devices.rb → has_debugger.rb} +11 -27
  23. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +6 -10
  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 +7 -8
  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 +2 -4
  28. data/lib/selenium/webdriver/common/driver_extensions/has_session_id.rb +2 -4
  29. data/lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb +3 -5
  30. data/lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb +2 -5
  31. data/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +6 -9
  32. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +9 -7
  33. data/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +3 -8
  34. data/lib/selenium/webdriver/common/element.rb +59 -39
  35. data/lib/selenium/webdriver/common/error.rb +259 -104
  36. data/lib/selenium/webdriver/common/file_reaper.rb +6 -14
  37. data/lib/selenium/webdriver/common/html5/local_storage.rb +8 -10
  38. data/lib/selenium/webdriver/common/html5/session_storage.rb +8 -10
  39. data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +8 -16
  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/{safari/browser.rb → common/interactions/interactions.rb} +17 -14
  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/{android.rb → common/interactions/none_input.rb} +14 -6
  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 +10 -14
  49. data/lib/selenium/webdriver/common/keys.rb +102 -82
  50. data/lib/selenium/webdriver/common/log_entry.rb +7 -8
  51. data/lib/selenium/webdriver/common/logger.rb +115 -0
  52. data/lib/selenium/webdriver/common/logs.rb +4 -6
  53. data/lib/selenium/webdriver/common/manager.rb +177 -0
  54. data/lib/selenium/webdriver/common/mouse.rb +12 -14
  55. data/lib/selenium/webdriver/common/navigation.rb +4 -6
  56. data/lib/selenium/webdriver/common/options.rb +26 -127
  57. data/lib/selenium/webdriver/common/platform.rb +75 -101
  58. data/lib/selenium/webdriver/common/port_prober.rb +7 -19
  59. data/lib/selenium/webdriver/common/profile_helper.rb +8 -11
  60. data/lib/selenium/webdriver/common/proxy.rb +68 -74
  61. data/lib/selenium/webdriver/common/search_context.rb +28 -37
  62. data/lib/selenium/webdriver/common/service.rb +219 -0
  63. data/lib/selenium/webdriver/common/socket_lock.rb +15 -16
  64. data/lib/selenium/webdriver/common/socket_poller.rb +30 -28
  65. data/lib/selenium/webdriver/common/target_locator.rb +16 -18
  66. data/lib/selenium/webdriver/common/timeouts.rb +6 -8
  67. data/lib/selenium/webdriver/common/touch_action_builder.rb +5 -10
  68. data/lib/selenium/webdriver/common/touch_screen.rb +22 -23
  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 +17 -16
  72. data/lib/selenium/webdriver/common/window.rb +50 -17
  73. data/lib/selenium/webdriver/common/zipper.rb +9 -13
  74. data/lib/selenium/webdriver/common.rb +21 -7
  75. data/lib/selenium/webdriver/edge/bridge.rb +34 -63
  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 +23 -95
  79. data/lib/selenium/webdriver/edge.rb +13 -13
  80. data/lib/selenium/webdriver/firefox/binary.rb +45 -60
  81. data/lib/selenium/webdriver/firefox/driver.rb +50 -0
  82. data/lib/selenium/webdriver/firefox/extension/prefs.json +3 -12
  83. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  84. data/lib/selenium/webdriver/firefox/extension.rb +20 -10
  85. data/lib/selenium/webdriver/firefox/launcher.rb +16 -22
  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 +47 -48
  91. data/lib/selenium/webdriver/firefox/profiles_ini.rb +11 -18
  92. data/lib/selenium/webdriver/firefox/service.rb +24 -95
  93. data/lib/selenium/webdriver/firefox/util.rb +2 -4
  94. data/lib/selenium/webdriver/firefox.rb +27 -12
  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 +12 -10
  99. data/lib/selenium/webdriver/remote/bridge.rb +100 -564
  100. data/lib/selenium/webdriver/remote/capabilities.rb +98 -100
  101. data/lib/selenium/webdriver/remote/driver.rb +51 -0
  102. data/lib/selenium/webdriver/remote/http/common.rb +34 -22
  103. data/lib/selenium/webdriver/remote/http/curb.rb +13 -14
  104. data/lib/selenium/webdriver/remote/http/default.rb +62 -43
  105. data/lib/selenium/webdriver/remote/http/persistent.rb +12 -9
  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 +48 -28
  109. data/lib/selenium/webdriver/remote/server_error.rb +3 -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 +10 -16
  114. data/lib/selenium/webdriver/safari/bridge.rb +17 -101
  115. data/lib/selenium/webdriver/{firefox/w3c_bridge.rb → safari/driver.rb} +27 -25
  116. data/lib/selenium/webdriver/safari/options.rb +29 -31
  117. data/lib/selenium/webdriver/safari/service.rb +38 -0
  118. data/lib/selenium/webdriver/safari.rb +27 -27
  119. data/lib/selenium/webdriver/support/abstract_event_listener.rb +19 -4
  120. data/lib/selenium/webdriver/support/block_event_listener.rb +3 -5
  121. data/lib/selenium/webdriver/support/color.rb +60 -43
  122. data/lib/selenium/webdriver/support/escaper.rb +43 -0
  123. data/lib/selenium/webdriver/support/event_firing_bridge.rb +39 -41
  124. data/lib/selenium/webdriver/support/select.rb +45 -97
  125. data/lib/selenium/webdriver/support.rb +3 -2
  126. data/lib/selenium/webdriver/{iphone.rb → version.rb} +3 -7
  127. data/lib/selenium/webdriver.rb +36 -23
  128. data/lib/selenium-webdriver.rb +2 -2
  129. data/selenium-webdriver.gemspec +42 -29
  130. metadata +331 -262
  131. data/lib/selenium/client/base.rb +0 -151
  132. data/lib/selenium/client/driver.rb +0 -29
  133. data/lib/selenium/client/errors.rb +0 -28
  134. data/lib/selenium/client/extensions.rb +0 -132
  135. data/lib/selenium/client/idiomatic.rb +0 -507
  136. data/lib/selenium/client/javascript_expression_builder.rb +0 -135
  137. data/lib/selenium/client/javascript_frameworks/jquery.rb +0 -32
  138. data/lib/selenium/client/javascript_frameworks/prototype.rb +0 -32
  139. data/lib/selenium/client/legacy_driver.rb +0 -1722
  140. data/lib/selenium/client/protocol.rb +0 -123
  141. data/lib/selenium/client/selenium_helper.rb +0 -49
  142. data/lib/selenium/client.rb +0 -57
  143. data/lib/selenium/rake/server_task.rb +0 -176
  144. data/lib/selenium/webdriver/android/bridge.rb +0 -68
  145. data/lib/selenium/webdriver/common/core_ext/base64.rb +0 -28
  146. data/lib/selenium/webdriver/common/core_ext/dir.rb +0 -61
  147. data/lib/selenium/webdriver/common/html5/location.rb +0 -19
  148. data/lib/selenium/webdriver/common/w3c_error.rb +0 -194
  149. data/lib/selenium/webdriver/edge/legacy_support.rb +0 -117
  150. data/lib/selenium/webdriver/firefox/bridge.rb +0 -89
  151. data/lib/selenium/webdriver/ie/bridge.rb +0 -88
  152. data/lib/selenium/webdriver/ie/server.rb +0 -133
  153. data/lib/selenium/webdriver/iphone/bridge.rb +0 -64
  154. data/lib/selenium/webdriver/phantomjs/bridge.rb +0 -78
  155. data/lib/selenium/webdriver/phantomjs/service.rb +0 -130
  156. data/lib/selenium/webdriver/remote/commands.rb +0 -211
  157. data/lib/selenium/webdriver/remote/w3c_bridge.rb +0 -668
  158. data/lib/selenium/webdriver/remote/w3c_capabilities.rb +0 -236
  159. data/lib/selenium/webdriver/remote/w3c_commands.rb +0 -132
  160. data/lib/selenium/webdriver/safari/resources/client.js +0 -7255
  161. data/lib/selenium/webdriver/safari/server.rb +0 -187
  162. data/lib/selenium-client.rb +0 -21
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c9f40e154da198fff9e277f0613042c22fff6c98
4
+ data.tar.gz: 33cc734e78b08e66c00a4c73f51c635d97c86fe6
5
+ SHA512:
6
+ metadata.gz: b40eb2e74a284b21ee31924f7cf20b878c7ab6ebcfe7848b21ad163165c80467c9d3a6fa6252ca74680b82db7186e8c1b73a2ac5f4d37501b0dfa16763ec19b9
7
+ data.tar.gz: bc9e9e0128888f3efe33f59160b677cc88655bf986877c534053adf915f3b39a78ff1d88e9b2d80753c1aba49af92f1796bb4f774ca68114027594813cc26ad3
data/CHANGES CHANGED
@@ -1,28 +1,685 @@
1
- 2.53.3 (2016-06-14)
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)
2
489
  ===================
3
490
 
4
491
  Firefox:
5
- * Fix bug with Firefox Binary & Marionette on Remote machines (issue 2281)
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
6
513
 
7
- 2.53.2 (2016-06-13)
514
+ 3.2.0 (2017-02-22)
8
515
  ===================
9
516
 
10
517
  Ruby:
11
- * Fix bug for finding binaries on Windows (issue 2271 & 2273)
518
+ * Implement new Logger class
519
+ * Fix issue with chromedriver process leader incompatibility on Win7 (issue 3512)
12
520
 
13
- 2.53.1 (2016-06-09)
521
+ 3.1.0 (2017-02-14)
14
522
  ===================
15
523
 
16
524
  Firefox:
17
- * Support for latest geckodriver (formerly wires)
18
- * Escape selector when converting to CSS (issue 2235)
525
+ * implement W3C actions endpoint
19
526
 
20
- 2.53.0 (2016-03-16)
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)
21
671
  ===================
22
672
 
23
673
  Ruby:
24
674
  * Removed dependency on "multi_json" (issue 1632)
25
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)
26
683
 
27
684
  2.52.0 (2016-02-12)
28
685
  ===================
data/Gemfile CHANGED
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
  gemspec