selenium-webdriver 3.142.7 → 4.3.0

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