selenium-webdriver 3.142.7 → 4.3.0

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 (157) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES +432 -5
  3. data/Gemfile +3 -1
  4. data/LICENSE +1 -1
  5. data/NOTICE +2 -0
  6. data/README.md +4 -5
  7. data/lib/selenium/server.rb +75 -64
  8. data/lib/selenium/webdriver/atoms/findElements.js +122 -0
  9. data/lib/selenium/webdriver/atoms/getAttribute.js +100 -7
  10. data/lib/selenium/webdriver/atoms/isDisplayed.js +76 -78
  11. data/lib/selenium/webdriver/atoms/mutationListener.js +55 -0
  12. data/lib/selenium/webdriver/bidi/session.rb +38 -0
  13. data/lib/selenium/webdriver/bidi.rb +55 -0
  14. data/lib/selenium/webdriver/chrome/driver.rb +26 -83
  15. data/lib/selenium/webdriver/chrome/{bridge.rb → features.rb} +55 -12
  16. data/lib/selenium/webdriver/chrome/options.rb +138 -67
  17. data/lib/selenium/webdriver/chrome/profile.rb +6 -3
  18. data/lib/selenium/webdriver/chrome/service.rb +8 -15
  19. data/lib/selenium/webdriver/chrome.rb +5 -18
  20. data/lib/selenium/webdriver/common/action_builder.rb +171 -236
  21. data/lib/selenium/webdriver/common/driver.rb +76 -29
  22. data/lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb +43 -0
  23. data/lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb +51 -0
  24. data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +89 -0
  25. data/lib/selenium/webdriver/common/driver_extensions/{has_touch_screen.rb → has_bidi.rb} +10 -8
  26. data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +87 -0
  27. data/lib/selenium/webdriver/common/driver_extensions/has_cdp.rb +38 -0
  28. data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +44 -0
  29. data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +43 -0
  30. data/lib/selenium/webdriver/common/driver_extensions/has_launching.rb +38 -0
  31. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +5 -8
  32. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +144 -0
  33. data/lib/selenium/webdriver/common/driver_extensions/{has_remote_status.rb → has_logs.rb} +4 -4
  34. data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +17 -0
  35. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +6 -27
  36. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +136 -0
  37. data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +11 -11
  38. data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +77 -0
  39. data/lib/selenium/webdriver/common/driver_extensions/{rotatable.rb → prints_page.rb} +18 -20
  40. data/lib/selenium/webdriver/common/element.rb +83 -23
  41. data/lib/selenium/webdriver/common/error.rb +32 -196
  42. data/lib/selenium/webdriver/common/interactions/input_device.rb +10 -4
  43. data/lib/selenium/webdriver/common/interactions/interaction.rb +12 -22
  44. data/lib/selenium/webdriver/common/interactions/interactions.rb +24 -4
  45. data/lib/selenium/webdriver/common/interactions/key_actions.rb +10 -6
  46. data/lib/selenium/webdriver/common/interactions/key_input.rb +11 -27
  47. data/lib/selenium/webdriver/common/interactions/none_input.rb +10 -8
  48. data/lib/selenium/webdriver/common/interactions/pause.rb +49 -0
  49. data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +68 -78
  50. data/lib/selenium/webdriver/common/interactions/pointer_cancel.rb +45 -0
  51. data/lib/selenium/webdriver/common/interactions/pointer_event_properties.rb +63 -0
  52. data/lib/selenium/webdriver/common/interactions/pointer_input.rb +15 -84
  53. data/lib/selenium/webdriver/common/interactions/pointer_move.rb +60 -0
  54. data/lib/selenium/webdriver/common/interactions/pointer_press.rb +85 -0
  55. data/lib/selenium/webdriver/common/interactions/scroll.rb +57 -0
  56. data/lib/selenium/webdriver/common/interactions/scroll_origin.rb +48 -0
  57. data/lib/selenium/webdriver/common/interactions/typing_interaction.rb +54 -0
  58. data/lib/selenium/webdriver/common/interactions/wheel_actions.rb +113 -0
  59. data/lib/selenium/webdriver/common/{w3c_manager.rb → interactions/wheel_input.rb} +14 -17
  60. data/lib/selenium/webdriver/common/keys.rb +1 -0
  61. data/lib/selenium/webdriver/common/log_entry.rb +2 -2
  62. data/lib/selenium/webdriver/common/logger.rb +50 -15
  63. data/lib/selenium/webdriver/common/manager.rb +11 -38
  64. data/lib/selenium/webdriver/common/options.rb +147 -23
  65. data/lib/selenium/webdriver/common/platform.rb +10 -5
  66. data/lib/selenium/webdriver/common/port_prober.rb +4 -6
  67. data/lib/selenium/webdriver/common/profile_helper.rb +11 -9
  68. data/lib/selenium/webdriver/common/proxy.rb +6 -3
  69. data/lib/selenium/webdriver/common/search_context.rb +7 -9
  70. data/lib/selenium/webdriver/common/service.rb +17 -125
  71. data/lib/selenium/webdriver/common/service_manager.rb +150 -0
  72. data/lib/selenium/webdriver/common/shadow_root.rb +87 -0
  73. data/lib/selenium/webdriver/common/socket_lock.rb +2 -2
  74. data/lib/selenium/webdriver/common/socket_poller.rb +3 -3
  75. data/lib/selenium/webdriver/common/takes_screenshot.rb +66 -0
  76. data/lib/selenium/webdriver/common/target_locator.rb +32 -4
  77. data/lib/selenium/webdriver/common/timeouts.rb +31 -4
  78. data/lib/selenium/webdriver/common/wait.rb +1 -1
  79. data/lib/selenium/webdriver/common/websocket_connection.rb +149 -0
  80. data/lib/selenium/webdriver/common/window.rb +0 -4
  81. data/lib/selenium/webdriver/common/zipper.rb +3 -9
  82. data/lib/selenium/webdriver/common.rb +35 -18
  83. data/lib/selenium/webdriver/devtools/console_event.rb +38 -0
  84. data/lib/selenium/webdriver/devtools/exception_event.rb +36 -0
  85. data/lib/selenium/webdriver/devtools/mutation_event.rb +37 -0
  86. data/lib/selenium/webdriver/devtools/pinned_script.rb +59 -0
  87. data/lib/selenium/webdriver/devtools/request.rb +67 -0
  88. data/lib/selenium/webdriver/devtools/response.rb +66 -0
  89. data/lib/selenium/webdriver/devtools.rb +86 -0
  90. data/lib/selenium/webdriver/edge/driver.rb +7 -29
  91. data/lib/selenium/webdriver/edge/features.rb +45 -0
  92. data/lib/selenium/webdriver/edge/options.rb +11 -48
  93. data/lib/selenium/webdriver/edge/profile.rb +33 -0
  94. data/lib/selenium/webdriver/edge/service.rb +10 -26
  95. data/lib/selenium/webdriver/edge.rb +11 -14
  96. data/lib/selenium/webdriver/firefox/driver.rb +32 -19
  97. data/lib/selenium/webdriver/firefox/extension.rb +8 -0
  98. data/lib/selenium/webdriver/firefox/features.rb +63 -0
  99. data/lib/selenium/webdriver/firefox/options.rb +73 -50
  100. data/lib/selenium/webdriver/firefox/profile.rb +16 -70
  101. data/lib/selenium/webdriver/firefox/service.rb +5 -9
  102. data/lib/selenium/webdriver/firefox/util.rb +1 -1
  103. data/lib/selenium/webdriver/firefox.rb +17 -28
  104. data/lib/selenium/webdriver/ie/driver.rb +1 -47
  105. data/lib/selenium/webdriver/ie/options.rb +15 -46
  106. data/lib/selenium/webdriver/ie/service.rb +13 -15
  107. data/lib/selenium/webdriver/ie.rb +3 -16
  108. data/lib/selenium/webdriver/remote/bridge.rb +563 -86
  109. data/lib/selenium/webdriver/remote/capabilities.rb +159 -123
  110. data/lib/selenium/webdriver/remote/commands.rb +158 -0
  111. data/lib/selenium/webdriver/remote/driver.rb +22 -13
  112. data/lib/selenium/webdriver/remote/http/common.rb +0 -5
  113. data/lib/selenium/webdriver/remote/http/default.rb +22 -31
  114. data/lib/selenium/webdriver/remote/response.rb +18 -49
  115. data/lib/selenium/webdriver/remote.rb +15 -12
  116. data/lib/selenium/webdriver/safari/driver.rb +3 -31
  117. data/lib/selenium/webdriver/safari/{bridge.rb → features.rb} +3 -3
  118. data/lib/selenium/webdriver/safari/options.rb +10 -29
  119. data/lib/selenium/webdriver/safari/service.rb +4 -8
  120. data/lib/selenium/webdriver/safari.rb +13 -19
  121. data/lib/selenium/webdriver/support/block_event_listener.rb +1 -1
  122. data/lib/selenium/webdriver/support/cdp/domain.rb.erb +63 -0
  123. data/lib/selenium/webdriver/support/cdp_client_generator.rb +108 -0
  124. data/lib/selenium/webdriver/support/color.rb +9 -9
  125. data/lib/selenium/webdriver/support/event_firing_bridge.rb +4 -4
  126. data/lib/selenium/webdriver/support/guards/guard.rb +89 -0
  127. data/lib/selenium/webdriver/{firefox/marionette/bridge.rb → support/guards/guard_condition.rb} +22 -19
  128. data/lib/selenium/webdriver/support/guards.rb +95 -0
  129. data/lib/selenium/webdriver/support/relative_locator.rb +51 -0
  130. data/lib/selenium/webdriver/support/select.rb +3 -3
  131. data/lib/selenium/webdriver/support.rb +1 -0
  132. data/lib/selenium/webdriver/version.rb +1 -1
  133. data/lib/selenium/webdriver.rb +14 -13
  134. data/selenium-webdriver.gemspec +32 -13
  135. metadata +176 -69
  136. data/lib/selenium/webdriver/common/bridge_helper.rb +0 -82
  137. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -64
  138. data/lib/selenium/webdriver/common/keyboard.rb +0 -70
  139. data/lib/selenium/webdriver/common/mouse.rb +0 -89
  140. data/lib/selenium/webdriver/common/touch_action_builder.rb +0 -78
  141. data/lib/selenium/webdriver/common/touch_screen.rb +0 -123
  142. data/lib/selenium/webdriver/common/w3c_action_builder.rb +0 -212
  143. data/lib/selenium/webdriver/edge/bridge.rb +0 -76
  144. data/lib/selenium/webdriver/firefox/binary.rb +0 -187
  145. data/lib/selenium/webdriver/firefox/extension/prefs.json +0 -69
  146. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  147. data/lib/selenium/webdriver/firefox/launcher.rb +0 -111
  148. data/lib/selenium/webdriver/firefox/legacy/driver.rb +0 -83
  149. data/lib/selenium/webdriver/firefox/marionette/driver.rb +0 -90
  150. data/lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so +0 -0
  151. data/lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so +0 -0
  152. data/lib/selenium/webdriver/remote/http/persistent.rb +0 -60
  153. data/lib/selenium/webdriver/remote/oss/bridge.rb +0 -594
  154. data/lib/selenium/webdriver/remote/oss/commands.rb +0 -223
  155. data/lib/selenium/webdriver/remote/w3c/bridge.rb +0 -605
  156. data/lib/selenium/webdriver/remote/w3c/capabilities.rb +0 -310
  157. data/lib/selenium/webdriver/remote/w3c/commands.rb +0 -157
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: c9f40e154da198fff9e277f0613042c22fff6c98
4
- data.tar.gz: 33cc734e78b08e66c00a4c73f51c635d97c86fe6
2
+ SHA256:
3
+ metadata.gz: 89c68b6ae8db07e10f1e0ead164a3d36f5294c62166d361b1ec1fa42647e3672
4
+ data.tar.gz: c1d0c0c2322acaaa95b98d5187315c975289282b3ee2085c14b86426b819de45
5
5
  SHA512:
6
- metadata.gz: b40eb2e74a284b21ee31924f7cf20b878c7ab6ebcfe7848b21ad163165c80467c9d3a6fa6252ca74680b82db7186e8c1b73a2ac5f4d37501b0dfa16763ec19b9
7
- data.tar.gz: bc9e9e0128888f3efe33f59160b677cc88655bf986877c534053adf915f3b39a78ff1d88e9b2d80753c1aba49af92f1796bb4f774ca68114027594813cc26ad3
6
+ metadata.gz: 120b0f57601862015b62dc9ae23b510ca2433342cc500ae4fe38a70550c07e91ff20e26fd2b5a03066830b8e1f06246d1e23151070207c1c8e5e4cfc37c20889
7
+ data.tar.gz: 3664cea6889b141e7de551ed518471fc2617ae6321c56981e898249fa688564aed92c5a05dba66333bf97457ed551e7051b009340a5e9abb91249e608633b416
data/CHANGES CHANGED
@@ -1,3 +1,431 @@
1
+ 4.3.0 (2022-06-23)
2
+ =========================
3
+
4
+ BiDi:
5
+ * Released selenium-devtools 0.103.0 (supports CDP v85, v101, v102, v103)
6
+
7
+ Ruby:
8
+ * Allow specifying which button is clicked in pointer action class methods
9
+ * Remove deprecated `Persistent` http class
10
+ * Remove deprecated HasRemoteStatus module
11
+ * Remove deprecated `Manager#new_window` and `Manager#logs`
12
+ * `ActionBuilder#move_to` no longer attempts to move to top left corner of element
13
+ * Remove deprecated support for sending Service parameters directly to Driver constructor
14
+ * Remove deprecated setters and getters for driver path on Browser modules
15
+ * Remove deprecated support for passing in options argument to Options class
16
+ * Allow `:options` parameter to take `Options` instance argument like other languages
17
+ * Remove deprecated support for `:desired_capabilities` & `:options` with `Hash` argument
18
+
19
+ 4.2.1 (2022-05-31)
20
+ =========================
21
+
22
+ Ruby
23
+ * Fix bug in setting default duration in Actions constructor
24
+
25
+ 4.2.0 (2022-05-27)
26
+ =========================
27
+
28
+ BiDi:
29
+ * Released selenium-devtools 0.97.0 (supports CDP v85, v95, v96, v97)
30
+ * Released selenium-devtools 0.98.0 (supports CDP v85, v96, v97, v98)
31
+ * Released selenium-devtools 0.99.0 (supports CDP v85, v97, v98, v99)
32
+ * Released selenium-devtools 0.100.0 (supports CDP v85, v98, v99, v100)
33
+ * Released selenium-devtools 0.101.0 (supports CDP v85, v99, v100, v101)
34
+ * Released selenium-devtools 0.102.0 (supports CDP v85, v100, v101, v102)
35
+ * Implement simple BiDi connection
36
+ * Fix bug in initial BiDi implementation (thanks Boris Petrov!)
37
+ * Fix bug with mutating headers in request interception (#10574)
38
+ * Fix bug with empty response headers (thanks Viren Negi!)
39
+
40
+ Firefox:
41
+ * Add support to Firefox Options for environment capability
42
+ * Use addon parameter instead of path parameter to avoid using file detector
43
+ * Restore #from_name method to Firefox profile (#10146)
44
+
45
+ Chromium:
46
+ * Add support for casting desktop
47
+
48
+ Ruby:
49
+ * Updated minimum required Ruby version to 2.7
50
+ * Fix bug by not attempting to stop service process when it's not started (#10015)
51
+ * Fix bug to not stop service process when it's not started (thanks Atsushi Tatsuma!)
52
+ * Use driver endpoint to get page source instead of JavaScript
53
+ * Add zenkaku_hankaku key support
54
+ * Fix download support of Selenium Server
55
+ * Do not convert Tag Name to CSS Selector
56
+
57
+ ActionBuilder:
58
+ * Raise error if input device not found
59
+ * Move `TypingInteraction` from `Interactions::KeyInput` to `Interactions` module
60
+ * Throw better errors for `PointerInput` methods
61
+ * Allow each action interaction class to validate its own source
62
+ * Set all Interactions classes to private
63
+ * Allow device names to use a default id if one is not specified
64
+ * Deprecate default mouse and keyboard values in constructor, favoring devices parameter
65
+ * Add support for pointer event properties
66
+ * Implement scroll wheel support
67
+ * Deprecate ordered pair parameters for pause method in favor of keywords
68
+ * Deprecate move to element with offset changing origin to top left of element
69
+
70
+ 4.1.0 (2021-11-22)
71
+ =========================
72
+
73
+ DevTools:
74
+ * Released selenium-devtools 0.95.0 (supports CDP v85, v93, v94, v95)
75
+ * Released selenium-devtools 0.96.0 (supports CDP v85, v94, v95, v96)
76
+ * Added support for secure websockets (#10017)
77
+
78
+ Ruby:
79
+ * Execute Script supports ShadowRoots (#10019)
80
+ * Fixed bug preventing zipping temp files on Windows (#9987)
81
+ * Sang Pumpkin Carol (thanks Jari!)
82
+
83
+ 4.0.3 (2021-10-20)
84
+ =========================
85
+
86
+ Firefox:
87
+ * Fixed bug avoiding camel casing prefs (#9944 thanks @glaszig)
88
+
89
+ Ruby:
90
+ * Fixed bug in Select class for finding by index (#9945)
91
+
92
+ Remote:
93
+ * Fixed bug preventing sending keys with an empty value
94
+
95
+ 4.0.2 (2021-10-19)
96
+ =========================
97
+
98
+ Server:
99
+ * Fixed bug in new download code.
100
+
101
+ 4.0.1 (2021-10-19)
102
+ =========================
103
+
104
+ Server:
105
+ * Fixed download by pointing to new storage location.
106
+ - Only supports Selenium 4 versions
107
+ * Added default value for Server::get and Server::download to use the latest server version
108
+
109
+ 4.0.0 (2021-10-13)
110
+ =========================
111
+
112
+ Ruby:
113
+ * Updated minimum required Ruby version to 2.6
114
+ * Updated minimum required rexml gem version due to vulnerability
115
+
116
+ Chrome:
117
+ * Added default values for Network Conditions so no longer need to specify everything
118
+
119
+ Firefox:
120
+ * Fixed bug where Firefox prefs were converting snake case to camel case
121
+
122
+ 4.0.0.rc3 (2021-10-08)
123
+ =========================
124
+
125
+ Ruby:
126
+ * Added support for getting timeout values from the driver
127
+
128
+ 4.0.0.rc2 (2021-09-30)
129
+ =========================
130
+
131
+ DevTools:
132
+ * Released selenium-devtools 0.93.0 (2021-09-01)
133
+ - adds CDP version 93
134
+ - removes CDP version 91
135
+ * Released selenium-devtools 0.94.0 (2021-09-22)
136
+ - adds CDP version 94
137
+ - removes CDP version 92
138
+ * Added support for mutating responses in network interception
139
+
140
+ Ruby:
141
+ * Implemented Options#add_option to work for vendor extension capabilities
142
+ * Fixed bug for requiring uri (#9825 thanks @flanger001)
143
+ * Moved New Window functionality to TargetLocator#new_window to be used with Driver#switch_to
144
+ * Deprecated using Manager#new_window
145
+ * Changed order of logging output (#9850)
146
+ * Added support for web_socket_url capability
147
+
148
+ Chromium:
149
+ * Implemented casting functionality
150
+ * Implemented ability to launch chromium app
151
+ * Implemented support for specifying permissions
152
+ * Added support for Chrome-specific Android functionality with #enable_android
153
+
154
+ Firefox:
155
+ * Implemented context functionality
156
+ * Added support for Firefox-specific Android functionality with #enable_android
157
+
158
+ Remote:
159
+ * Added support for file detector to install Firefox addons from client machine
160
+
161
+ 4.0.0.rc1 (2021-09-01)
162
+ =========================
163
+
164
+ DevTools:
165
+ * Released selenium-devtools 0.92.0 (2021-08-21) which:
166
+ - adds CDP versions 92
167
+ - removes CDP versions 88, 89, 90
168
+
169
+ IE:
170
+ * Added options for running Microsoft Edge in IE mode with IE Driver
171
+
172
+ Remote:
173
+ * Added default file detector for remote driver
174
+
175
+ Ruby:
176
+ * Fixed bug for getting valid capability that has not been set
177
+ * Fixed bug preventing loading of ServerError class
178
+
179
+ 4.0.0.beta4 (2021-06-07)
180
+ =========================
181
+
182
+ Chrome:
183
+ * Fixed bug with camel casing of localState object
184
+
185
+ Firefox:
186
+ * Added support for Full Page Screenshots
187
+
188
+ Remote:
189
+ * Added support for #execute_cdp on Chrome and Edge
190
+
191
+ Ruby:
192
+ * Changed capabilities to use alwaysMatch instead of firstMatch by default
193
+ * Fixed bug preventing Options classes from handling Proxy instances
194
+
195
+ 4.0.0.beta3 (2021-04-13)
196
+ =========================
197
+
198
+ Chrome:
199
+ * Fixed a regression with prefs hash keys being converted to camelCase.
200
+ * Fixed an issue when passing Profile object to Options would fail.
201
+
202
+ DevTools:
203
+ * Released selenium-devtools 0.91.0 which:
204
+ - adds CDP versions 90 and 91
205
+ - removes CDP versions 86 and 87
206
+
207
+ Remote:
208
+ * Added support for setting alwaysMatch/firstMatch capabilities per W3C
209
+ WebDriver specification. It's done using the following methods where
210
+ `caps` is either a Ruby hash with desired capabilities or an instance
211
+ of Remote::Capabilities:
212
+ * Selenium::WebDriver::Remote::Capabilities.always_match(caps)
213
+ * Selenium::WebDriver::Remote::Capabilities.first_match(caps)
214
+ * Added support for Driver#save_print_page.
215
+ * Fixed an issue with Driver#print_page.
216
+ * Added support for setting timeouts capabilities in Remote::Capabilities
217
+ per W3C WebDriver specification.
218
+ * Added support for Element#aria_role which returns WAI-ARIA role of the element.
219
+ * Added support for Element#accessible name which returns WAI-ARIA label of the element.
220
+ * Added support for using DevTools version provided by Grid instead of
221
+ calculating it manually
222
+
223
+ Ruby:
224
+ * Remove JRuby-specific socket poller. Note that this requires JRuby 9.2.8.0+.
225
+
226
+ 4.0.0.beta2 (2021-03-16)
227
+ =========================
228
+
229
+ DevTools:
230
+ * Separated out DevTools methods into selenium-devtools gem to better manage versioning
231
+ * Updated supported versions to 85-89
232
+ * Add support for intercepting browser requests
233
+
234
+ Firefox:
235
+ * Add support for using DevTools commands with Firefox Nightly
236
+
237
+ Remote:
238
+ * Provide access to browser specific driver extensions as appropriate for designated browser
239
+ * Add support for using DevTools commands via Grid
240
+
241
+ Ruby:
242
+ * Spec Guard implementation moved into lib directory for other projects to use
243
+ * Implemented `Element#dom_attribute` to obtain attribute value as defined by w3c specification
244
+ * Implemented `Options#eq?`
245
+ * Allow Options subclass instances to be created from class methods in superclass
246
+
247
+ Safari:
248
+ * Fix bug that prevented usage of Safari Technology Preview
249
+
250
+ 4.0.0.beta1 (2021-02-15)
251
+ =========================
252
+
253
+ DevTools:
254
+ * Updated supported versions to 85-88
255
+
256
+ Edge:
257
+ * Removed support for legacy Edge HTML
258
+
259
+ Firefox:
260
+ * Fixed support for default profile settings
261
+ * Added support for Devtools for Firefox v87+
262
+
263
+ Safari:
264
+ * Removed default platformName specification so it works with Grid
265
+
266
+ Ruby:
267
+ * Added support for httpOnly attribute in Cookies
268
+ * Implemented `#print_page` method (thanks @raju249)
269
+ * Fixed support for missing libraries in Ruby 3.0 (thanks @znz)
270
+ * Deprecated `HTTP::Persistent` class
271
+ * Fixed support for accessors in options classes
272
+ * Added support for status endpoint for all browsers
273
+ * Fix support for Browser, Driver, and Performance Logging in Chrome and Edge
274
+
275
+ 4.0.0.alpha7 (2020-11-10)
276
+ =========================
277
+
278
+ Chrome:
279
+ * Fixed a link to download ChromeDriver when it's not found (thanks @masakazutakewaka).
280
+ * Fixed an issue when passing instance of Profile to an Options in capabilities
281
+ (thanks @masakazutakewaka).
282
+
283
+ DevTools:
284
+ * Added support for multiple version of CDP. Currently supported versions are
285
+ 84-87. The proper version is automatically selected when the browser is started
286
+ based on its version. The implementation is Chromium-based and is confirmed
287
+ to work in Chrome and Edge at least.
288
+ * Added support for basic authentication (see HasAuthentication).
289
+ * Added support for listening to JavaScript console messages (see HasLogEvents).
290
+ * Added support for listening to JavaScript exceptions (see HasLogEvents).
291
+ * Added support for listening to DOM mutations (see HasLogEvents).
292
+
293
+ Edge:
294
+ * Switched default Edge implementation to Chromium-based. To use older versions
295
+ of Edge, pass :edge_html when initializing the driver.
296
+
297
+ Firefox:
298
+ * Fixed an issue whereby using the new capabilities structure in local drivers
299
+ would cause the W3C check to complain that `browser_name` was an invalid
300
+ capability key name (thanks @luke-hill)
301
+
302
+ Ruby:
303
+ * Added support for taking screenshots of individual elements using Element#screenshot
304
+ (thanks @johndouthat).
305
+ * Fixed deprecation message of using Net::HTTP::Proxy (thanks @masakazutakewaka).
306
+ * Fixed false negative detection of Linux on WSL2 (thanks @snsten).
307
+ * Support ChildProcess 4.x versions (thanks @boutil).
308
+
309
+ Safari:
310
+ * Fixed browser name in capabilities for Safari Technology Preview.
311
+
312
+ 4.0.0.alpha6 (2020-05-28)
313
+ =========================
314
+
315
+ Chrome:
316
+ * Added DevTools classes and methods generated from the CDP specification.
317
+ It currently supports commands and events and provides Rubyish API:
318
+ driver.devtools.page.navigate(url: 'http://google.com')
319
+ driver.devtools.console.clear_messages
320
+ driver.devtools.page.enable
321
+ driver.devtools.page.on(:load_event_fired) do |params|
322
+ puts("Page loaded in #{params['timestamp']}")
323
+ end
324
+ Check https://chromedevtools.github.io/devtools-protocol/ for more information
325
+ about possible commands and events. Please note that this API is considered
326
+ to be experimental and may change any time before stable 4.0 release.
327
+ * Fixed an issue when passing :prompt_for_download (or similar snake_cased
328
+ symbols) in Options#prefs would be ignored by Chrome because Selenium
329
+ would internally convert it to camelCased format (:promptForDownload).
330
+ Now :prefs are left intact.
331
+
332
+ Edge:
333
+ * Fixed an issue when Driver#execute_cdp would not work for Chromium-based
334
+ Edge browser.
335
+
336
+ Ruby:
337
+ * Deprecated passing :desired_capabilities and :options to driver initialization
338
+ in favor of :capabilities. They now can be combined in an array to make
339
+ custom capabilities requirements:
340
+ caps = Selenium::WebDriver::Remote::Capabilities.chrome
341
+ opts = Selenium::WebDriver::Chrome::Options.new
342
+ Selenium::WebDriver.for(:remote, capabilities: :chrome)
343
+ Selenium::WebDriver.for(:remote, capabilities: caps)
344
+ Selenium::WebDriver.for(:remote, capabilities: opts)
345
+ Selenium::WebDriver.for(:remote, capabilities: [caps, opts])
346
+ * Deprecated passing Hash to :capabilities in favor of Remote::Capabilities object.
347
+ * Updated minimum require Ruby version to 2.5.
348
+ * Improved keyword arguments handling to avoid warnings in Ruby 2.7.
349
+
350
+ 4.0.0.alpha5 (2020-03-18)
351
+ =========================
352
+
353
+ The release is just to synchronize version with other bindings and does not
354
+ include any changes.
355
+
356
+ 4.0.0.alpha4 (2020-01-09)
357
+ =========================
358
+
359
+ Ruby:
360
+ * Added initial support for relative locators, which allow to find elements
361
+ above/below/left/right/near another element. For example, you can find all
362
+ the cells in a table to the right of your starting cell:
363
+ start_cell = driver.find_element(css: 'td')
364
+ right_cells = driver.find_elements(relative: {tag_name: 'td', right: start_cell})
365
+ The documentation is still lacking so refer to examples in df6be2e962.
366
+ * Added ability to silence certain logger messages by using it's identifiers:
367
+ Selenium::WebDriver.logger.ignore(:driver_path)
368
+ * Added new dependency: websocket. It's used for communicating with Chrome DevTools.
369
+ * Loosened childprocess dependency to allow using version 2.0+.
370
+ * Loosened rubyzip dependency to allow using version 2.0+.
371
+ * Fixed Errno::EACCES error on Linux DeX and similar distributes
372
+
373
+ Chrome:
374
+ * Added initial support for communicating with Chrome DevTools. The implementation
375
+ is very basic and lacks CDP domains, events and types - those will be added
376
+ in future releases. Still, it allows to execute simple commands to DevTools:
377
+ driver.devtools.send('Page.navigate', {url: 'https://google.com'})
378
+
379
+ 4.0.0.alpha3 (2019-07-08)
380
+ =========================
381
+
382
+ Ruby:
383
+ * All documented driver capabilities supported in respective browser Options class by constructor and accessor
384
+ * Driver constructor :options and :desired_capabilities generate the same capabilities for local and remote execution
385
+ * Deprecated :options as keyword for initializing browser Options classes
386
+
387
+ Chrome:
388
+ * Add support for browser logging with latest versions of chromedriver
389
+
390
+ Edge:
391
+ * Add support for Chromium based implementation
392
+
393
+ 4.0.0.alpha2 (2019-05-02)
394
+ =========================
395
+
396
+ Ruby:
397
+ * Fixed an issue with previous alpha release which lead to removed files
398
+ being packaged inside the gem
399
+
400
+ 4.0.0.alpha1 (2019-05-01)
401
+ =========================
402
+
403
+ Ruby:
404
+ * Removed Mouse and Keyboard as their implementations are not compliant to WebDriver specification
405
+ * Removed TouchActionBuilder as its implementation is not compliant to WebDriver specification
406
+ * Change ActionBuilder to be fully compliant to WebDriver specification
407
+ * Change Manager to be fully compliant to WebDriver specification
408
+ * Removed all deprecated errors that are not compliant to WebDriver specification
409
+ * Update minimum required Ruby version to 2.4
410
+ * Changed capabilities to use only those that are compliant to WebDriver specification
411
+ * Removed deprecated timeout setter on default HTTP client
412
+ * Removed deprecated Remote::W3C::Capabilities
413
+ * Fixed an issue when services are not shutdown properly
414
+
415
+ Chrome:
416
+ * Removed support for OSS mode - use W3C mode instead by using
417
+ Selenium::WebDriver::Chrome::Options.new(options: {w3c: true})
418
+
419
+ PhantomJS:
420
+ * Removed support for PhantomJS driver
421
+
422
+ Firefox:
423
+ * Removed support for legacy Firefox driver - use GeckoDriver instead
424
+ * Removed deprecated outdated capabilities
425
+ * Fixed an issue when passing :profile string to Firefox::Options.new would
426
+ result in NoMethodError. Now it will find a profile with such name on your
427
+ system and use it accordingly (issue #7119)
428
+
1
429
  3.142.7 (2019-12-27)
2
430
  ====================
3
431
 
@@ -30,7 +458,6 @@ Firefox:
30
458
  * Fixed a regression when Firefox binary path was not sent to GeckoDriver
31
459
  by default and browser could not be located (issue #7219)
32
460
 
33
-
34
461
  3.142.2 (2019-05-11)
35
462
  ====================
36
463
 
@@ -581,11 +1008,11 @@ Ruby:
581
1008
  * Fix bug in auto detection of drivers which allowed selection of non-executable binaries
582
1009
 
583
1010
  W3C:
584
- * Implement #cookie_named and #delete_all_cookies methods (thanks lmtierney)
585
- * Implement element #property method (thanks lmtierney)
1011
+ * Implement #cookie_named and #delete_all_cookies methods (thanks lmtierney)
1012
+ * Implement element #property method (thanks lmtierney)
586
1013
 
587
1014
  Chrome:
588
- * Fix bug in switches (thanks danvine)
1015
+ * Fix bug in switches (thanks danvine)
589
1016
 
590
1017
  3.0.1 (2016-11-06)
591
1018
  ===================
@@ -607,7 +1034,7 @@ Ruby:
607
1034
  * Add support for latest driver options
608
1035
  * Add support for :port parameter for launching driver
609
1036
  * Add support for :service_args parameter for driver command line switches
610
- * Improve reliability by increasing service shutdown timeout (#2815; thanks John Barbuto )
1037
+ * Improve reliability by increasing service shutdown timeout (#2815; thanks John Barbuto )
611
1038
 
612
1039
  Firefox:
613
1040
  * Add support for :firefox_options in geckodriver
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  source 'https://rubygems.org'
4
- gemspec
4
+ Dir["#{__dir__}/*.gemspec"].each do |spec|
5
+ gemspec name: File.basename(spec, '.gemspec')
6
+ end
data/LICENSE CHANGED
@@ -187,7 +187,7 @@
187
187
  same "printed page" as the copyright notice for easier
188
188
  identification within third-party archives.
189
189
 
190
- Copyright 2019 Software Freedom Conservancy (SFC)
190
+ Copyright 2022 Software Freedom Conservancy (SFC)
191
191
 
192
192
  Licensed under the Apache License, Version 2.0 (the "License");
193
193
  you may not use this file except in compliance with the License.
data/NOTICE ADDED
@@ -0,0 +1,2 @@
1
+ Copyright 2011-2022 Software Freedom Conservancy
2
+ Copyright 2004-2011 Selenium committers
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # selenium-webdriver
2
2
 
3
- This gem provides Ruby bindings for WebDriver
4
- and has been tested to work on MRI (2.0 through 2.2),
3
+ This gem provides Ruby bindings for Selenium and supports MRI >= 2.6
5
4
 
6
5
  ## Install
7
6
 
@@ -9,14 +8,14 @@ and has been tested to work on MRI (2.0 through 2.2),
9
8
 
10
9
  ## Links
11
10
 
12
- * http://rubygems.org/gems/selenium-webdriver
13
- * http://seleniumhq.github.io/selenium/docs/api/rb/index.html
11
+ * https://rubygems.org/gems/selenium-webdriver
12
+ * https://www.selenium.dev/selenium/docs/api/rb/index.html
14
13
  * https://github.com/SeleniumHQ/selenium/wiki/Ruby-Bindings
15
14
  * https://github.com/SeleniumHQ/selenium/issues
16
15
 
17
16
  ## License
18
17
 
19
- Copyright 2009-2018 Software Freedom Conservancy
18
+ Copyright 2009-2021 Software Freedom Conservancy
20
19
 
21
20
  Licensed to the Software Freedom Conservancy (SFC) under one
22
21
  or more contributor license agreements. See the NOTICE file