selenium-webdriver 3.142.7 → 4.16.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 (188) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES +685 -5
  3. data/Gemfile +6 -1
  4. data/LICENSE +1 -1
  5. data/NOTICE +2 -0
  6. data/README.md +4 -5
  7. data/bin/linux/selenium-manager +0 -0
  8. data/bin/macos/selenium-manager +0 -0
  9. data/bin/windows/selenium-manager.exe +0 -0
  10. data/lib/selenium/server.rb +93 -90
  11. data/lib/selenium/webdriver/atoms/findElements.js +122 -0
  12. data/lib/selenium/webdriver/atoms/getAttribute.js +100 -7
  13. data/lib/selenium/webdriver/atoms/isDisplayed.js +77 -78
  14. data/lib/selenium/webdriver/atoms/mutationListener.js +55 -0
  15. data/lib/selenium/webdriver/atoms.rb +5 -3
  16. data/lib/selenium/webdriver/bidi/browsing_context.rb +88 -0
  17. data/lib/selenium/webdriver/bidi/browsing_context_info.rb +35 -0
  18. data/lib/selenium/webdriver/bidi/log/base_log_entry.rb +35 -0
  19. data/lib/selenium/webdriver/bidi/log/console_log_entry.rb +35 -0
  20. data/lib/selenium/webdriver/bidi/log/filter_by.rb +40 -0
  21. data/lib/selenium/webdriver/bidi/log/generic_log_entry.rb +33 -0
  22. data/lib/selenium/webdriver/bidi/log/javascript_log_entry.rb +33 -0
  23. data/lib/selenium/webdriver/bidi/log_inspector.rb +143 -0
  24. data/lib/selenium/webdriver/bidi/navigate_result.rb +33 -0
  25. data/lib/selenium/webdriver/bidi/session.rb +51 -0
  26. data/lib/selenium/webdriver/{common/keyboard.rb → bidi.rb} +21 -35
  27. data/lib/selenium/webdriver/chrome/driver.rb +9 -86
  28. data/lib/selenium/webdriver/chrome/features.rb +48 -0
  29. data/lib/selenium/webdriver/chrome/options.rb +9 -158
  30. data/lib/selenium/webdriver/chrome/profile.rb +3 -80
  31. data/lib/selenium/webdriver/chrome/service.rb +7 -29
  32. data/lib/selenium/webdriver/chrome.rb +5 -20
  33. data/lib/selenium/webdriver/chromium/driver.rb +60 -0
  34. data/lib/selenium/webdriver/{chrome/bridge.rb → chromium/features.rb} +48 -17
  35. data/lib/selenium/webdriver/chromium/options.rb +243 -0
  36. data/lib/selenium/webdriver/chromium/profile.rb +113 -0
  37. data/lib/selenium/webdriver/chromium.rb +29 -0
  38. data/lib/selenium/webdriver/common/action_builder.rb +126 -238
  39. data/lib/selenium/webdriver/common/child_process.rb +124 -0
  40. data/lib/selenium/webdriver/common/driver.rb +82 -43
  41. data/lib/selenium/webdriver/common/driver_extensions/downloads_files.rb +0 -2
  42. data/lib/selenium/webdriver/common/driver_extensions/{has_location.rb → full_page_screenshot.rb} +13 -11
  43. data/lib/selenium/webdriver/common/driver_extensions/has_addons.rb +0 -2
  44. data/lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb +49 -0
  45. data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +87 -0
  46. data/lib/selenium/webdriver/common/driver_extensions/{has_touch_screen.rb → has_bidi.rb} +9 -9
  47. data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +86 -0
  48. data/lib/selenium/webdriver/common/driver_extensions/has_cdp.rb +36 -0
  49. data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +42 -0
  50. data/lib/selenium/webdriver/common/driver_extensions/has_debugger.rb +0 -2
  51. data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +41 -0
  52. data/lib/selenium/webdriver/common/driver_extensions/has_file_downloads.rb +65 -0
  53. data/lib/selenium/webdriver/common/driver_extensions/has_launching.rb +36 -0
  54. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +143 -0
  55. data/lib/selenium/webdriver/common/driver_extensions/{has_remote_status.rb → has_logs.rb} +4 -4
  56. data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +16 -1
  57. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +69 -0
  58. data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +11 -13
  59. data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +75 -0
  60. data/lib/selenium/webdriver/common/driver_extensions/{rotatable.rb → prints_page.rb} +18 -20
  61. data/lib/selenium/webdriver/common/driver_finder.rb +45 -0
  62. data/lib/selenium/webdriver/common/element.rb +89 -29
  63. data/lib/selenium/webdriver/common/error.rb +53 -194
  64. data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +2 -2
  65. data/lib/selenium/webdriver/common/interactions/input_device.rb +10 -4
  66. data/lib/selenium/webdriver/common/interactions/interaction.rb +12 -22
  67. data/lib/selenium/webdriver/common/interactions/interactions.rb +24 -4
  68. data/lib/selenium/webdriver/common/interactions/key_actions.rb +10 -6
  69. data/lib/selenium/webdriver/common/interactions/key_input.rb +11 -27
  70. data/lib/selenium/webdriver/common/interactions/none_input.rb +10 -8
  71. data/lib/selenium/webdriver/common/interactions/pause.rb +49 -0
  72. data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +71 -82
  73. data/lib/selenium/webdriver/common/interactions/pointer_cancel.rb +45 -0
  74. data/lib/selenium/webdriver/common/interactions/pointer_event_properties.rb +63 -0
  75. data/lib/selenium/webdriver/common/interactions/pointer_input.rb +15 -84
  76. data/lib/selenium/webdriver/common/interactions/pointer_move.rb +60 -0
  77. data/lib/selenium/webdriver/common/interactions/pointer_press.rb +85 -0
  78. data/lib/selenium/webdriver/common/interactions/scroll.rb +59 -0
  79. data/lib/selenium/webdriver/common/interactions/scroll_origin.rb +48 -0
  80. data/lib/selenium/webdriver/common/interactions/typing_interaction.rb +54 -0
  81. data/lib/selenium/webdriver/common/interactions/wheel_actions.rb +113 -0
  82. data/lib/selenium/webdriver/common/{w3c_manager.rb → interactions/wheel_input.rb} +14 -17
  83. data/lib/selenium/webdriver/common/keys.rb +1 -0
  84. data/lib/selenium/webdriver/common/local_driver.rb +46 -0
  85. data/lib/selenium/webdriver/common/log_entry.rb +2 -2
  86. data/lib/selenium/webdriver/common/logger.rb +119 -19
  87. data/lib/selenium/webdriver/common/manager.rb +11 -38
  88. data/lib/selenium/webdriver/common/options.rb +154 -23
  89. data/lib/selenium/webdriver/common/platform.rb +15 -52
  90. data/lib/selenium/webdriver/common/port_prober.rb +4 -6
  91. data/lib/selenium/webdriver/common/profile_helper.rb +11 -9
  92. data/lib/selenium/webdriver/common/proxy.rb +8 -5
  93. data/lib/selenium/webdriver/common/search_context.rb +7 -9
  94. data/lib/selenium/webdriver/common/selenium_manager.rb +140 -0
  95. data/lib/selenium/webdriver/common/service.rb +26 -143
  96. data/lib/selenium/webdriver/common/service_manager.rb +144 -0
  97. data/lib/selenium/webdriver/common/shadow_root.rb +86 -0
  98. data/lib/selenium/webdriver/common/socket_lock.rb +4 -4
  99. data/lib/selenium/webdriver/common/socket_poller.rb +4 -4
  100. data/lib/selenium/webdriver/common/takes_screenshot.rb +65 -0
  101. data/lib/selenium/webdriver/common/target_locator.rb +31 -4
  102. data/lib/selenium/webdriver/common/timeouts.rb +31 -4
  103. data/lib/selenium/webdriver/common/virtual_authenticator/credential.rb +85 -0
  104. data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb +72 -0
  105. data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb +62 -0
  106. data/lib/selenium/webdriver/common/wait.rb +1 -1
  107. data/lib/selenium/webdriver/common/websocket_connection.rb +164 -0
  108. data/lib/selenium/webdriver/common/window.rb +6 -10
  109. data/lib/selenium/webdriver/common/zipper.rb +4 -10
  110. data/lib/selenium/webdriver/common.rb +43 -20
  111. data/lib/selenium/webdriver/devtools/console_event.rb +36 -0
  112. data/lib/selenium/webdriver/devtools/exception_event.rb +34 -0
  113. data/lib/selenium/webdriver/devtools/mutation_event.rb +35 -0
  114. data/lib/selenium/webdriver/devtools/network_interceptor.rb +173 -0
  115. data/lib/selenium/webdriver/devtools/pinned_script.rb +57 -0
  116. data/lib/selenium/webdriver/devtools/request.rb +65 -0
  117. data/lib/selenium/webdriver/devtools/response.rb +64 -0
  118. data/lib/selenium/webdriver/devtools.rb +96 -0
  119. data/lib/selenium/webdriver/edge/driver.rb +11 -27
  120. data/lib/selenium/webdriver/edge/features.rb +48 -0
  121. data/lib/selenium/webdriver/edge/options.rb +18 -43
  122. data/lib/selenium/webdriver/edge/profile.rb +33 -0
  123. data/lib/selenium/webdriver/edge/service.rb +8 -23
  124. data/lib/selenium/webdriver/edge.rb +11 -16
  125. data/lib/selenium/webdriver/firefox/driver.rb +38 -19
  126. data/lib/selenium/webdriver/firefox/extension.rb +8 -0
  127. data/lib/selenium/webdriver/firefox/features.rb +70 -0
  128. data/lib/selenium/webdriver/firefox/options.rb +73 -61
  129. data/lib/selenium/webdriver/firefox/profile.rb +20 -72
  130. data/lib/selenium/webdriver/firefox/service.rb +3 -25
  131. data/lib/selenium/webdriver/firefox/util.rb +1 -1
  132. data/lib/selenium/webdriver/firefox.rb +17 -28
  133. data/lib/selenium/webdriver/ie/driver.rb +5 -45
  134. data/lib/selenium/webdriver/ie/features.rb +34 -0
  135. data/lib/selenium/webdriver/ie/options.rb +14 -44
  136. data/lib/selenium/webdriver/ie/service.rb +3 -27
  137. data/lib/selenium/webdriver/ie.rb +4 -16
  138. data/lib/selenium/webdriver/remote/bridge/commands.rb +164 -0
  139. data/lib/selenium/webdriver/remote/bridge.rb +574 -88
  140. data/lib/selenium/webdriver/remote/capabilities.rb +144 -158
  141. data/lib/selenium/webdriver/remote/driver.rb +45 -14
  142. data/lib/selenium/webdriver/remote/features.rb +75 -0
  143. data/lib/selenium/webdriver/remote/http/common.rb +3 -8
  144. data/lib/selenium/webdriver/remote/http/curb.rb +1 -3
  145. data/lib/selenium/webdriver/remote/http/default.rb +24 -33
  146. data/lib/selenium/webdriver/remote/response.rb +17 -49
  147. data/lib/selenium/webdriver/remote/server_error.rb +1 -1
  148. data/lib/selenium/webdriver/remote.rb +15 -12
  149. data/lib/selenium/webdriver/safari/driver.rb +7 -29
  150. data/lib/selenium/webdriver/safari/{bridge.rb → features.rb} +7 -5
  151. data/lib/selenium/webdriver/safari/options.rb +12 -27
  152. data/lib/selenium/webdriver/safari/service.rb +13 -11
  153. data/lib/selenium/webdriver/safari.rb +14 -20
  154. data/lib/selenium/webdriver/support/block_event_listener.rb +1 -1
  155. data/lib/selenium/webdriver/support/color.rb +24 -24
  156. data/lib/selenium/webdriver/support/event_firing_bridge.rb +5 -5
  157. data/lib/selenium/webdriver/support/guards/guard.rb +90 -0
  158. data/lib/selenium/webdriver/{firefox/marionette/bridge.rb → support/guards/guard_condition.rb} +21 -20
  159. data/lib/selenium/webdriver/support/guards.rb +95 -0
  160. data/lib/selenium/webdriver/support/relative_locator.rb +50 -0
  161. data/lib/selenium/webdriver/support/select.rb +6 -4
  162. data/lib/selenium/webdriver/support.rb +1 -0
  163. data/lib/selenium/webdriver/version.rb +1 -1
  164. data/lib/selenium/webdriver.rb +19 -17
  165. data/selenium-webdriver.gemspec +36 -18
  166. metadata +161 -91
  167. data/lib/selenium/webdriver/common/bridge_helper.rb +0 -82
  168. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +0 -58
  169. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -64
  170. data/lib/selenium/webdriver/common/mouse.rb +0 -89
  171. data/lib/selenium/webdriver/common/touch_action_builder.rb +0 -78
  172. data/lib/selenium/webdriver/common/touch_screen.rb +0 -123
  173. data/lib/selenium/webdriver/common/w3c_action_builder.rb +0 -212
  174. data/lib/selenium/webdriver/edge/bridge.rb +0 -76
  175. data/lib/selenium/webdriver/firefox/binary.rb +0 -187
  176. data/lib/selenium/webdriver/firefox/extension/prefs.json +0 -69
  177. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  178. data/lib/selenium/webdriver/firefox/launcher.rb +0 -111
  179. data/lib/selenium/webdriver/firefox/legacy/driver.rb +0 -83
  180. data/lib/selenium/webdriver/firefox/marionette/driver.rb +0 -90
  181. data/lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so +0 -0
  182. data/lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so +0 -0
  183. data/lib/selenium/webdriver/remote/http/persistent.rb +0 -60
  184. data/lib/selenium/webdriver/remote/oss/bridge.rb +0 -594
  185. data/lib/selenium/webdriver/remote/oss/commands.rb +0 -223
  186. data/lib/selenium/webdriver/remote/w3c/bridge.rb +0 -605
  187. data/lib/selenium/webdriver/remote/w3c/capabilities.rb +0 -310
  188. data/lib/selenium/webdriver/remote/w3c/commands.rb +0 -157
data/CHANGES CHANGED
@@ -1,3 +1,684 @@
1
+ 4.16.0 (unreleased)
2
+ =========================
3
+
4
+ Ruby:
5
+ * Add RBS files to Ruby (#12844)
6
+ * Convert binary locations for cygwin (#12618)
7
+ * Allow Selenium Manager to work with Unix (#13161)
8
+ * Extend RBS support for logger and log entry (#13192)
9
+ * Update rules_ruby to the latest version (#13235)
10
+
11
+ BiDi:
12
+ * Released selenium-devtools 0.120.0 (supports CDP v85, v118, v119, v120)
13
+
14
+ Chrome:
15
+ * Fix http proxy configuration for chrome (#13093)
16
+
17
+ Firefox:
18
+ * Delete 'lock' file in FF profile (#13090)
19
+
20
+ 4.15.0 (2023-11-01)
21
+ =========================
22
+
23
+ * Do not set browser binary in selenium manager if it is an empty string (#12738)
24
+ * Add flaky condition to guards to mark unreliable tests
25
+ * Rake update needs to build latest grid for running remote tests
26
+ * Add CDP v119 and remove v116
27
+ * Implement file downloads (#12979)
28
+
29
+ 4.14.0 (2023-10-09)
30
+ =========================
31
+ Ruby:
32
+ * allow users to access the full script of the atom directly
33
+
34
+ BiDi:
35
+ * Released selenium-devtools 0.118.0 (supports CDP v85, v116, v117, v118)
36
+
37
+ 4.13.1 (2023-09-25)
38
+ =========================
39
+ Ruby:
40
+ * Fix bug preventing logging chromedriver to file
41
+
42
+ 4.13.0 (2023-09-25)
43
+ =========================
44
+ Ruby:
45
+ * Fix bug preventing using performance logging with chromium
46
+ * Allow users to set Selenium Manager path by environment variable (#12752)
47
+ * Allow service to be started before the driver
48
+ * remove deprecated driver extensions for location and network connection
49
+
50
+ BiDi:
51
+ * Released selenium-devtools 0.117.0 (supports CDP v85, v115, v116, v117)
52
+
53
+ 4.12.0 (2023-08-31)
54
+ =========================
55
+ Ruby:
56
+ * Fix bug preventing good error messages in Selenium Manager when stdout empty
57
+ * Fix bug with Firefox not loading net/http library by default (#12506)
58
+ * Remove support for using capabilities in local drivers
59
+
60
+ BiDi:
61
+ * Released selenium-devtools 0.116.0 (supports CDP v85, v114, v115, v116)
62
+
63
+ 4.11.0 (2023-07-31)
64
+ =========================
65
+ Ruby:
66
+ * Made network interception threads fail silently (#12226)
67
+ * Have Selenium Manager binary locate drivers on PATH (#12345)
68
+ * Add browser output from selenium manager to options (#12398)
69
+ * Remove deprecated code (#12417)
70
+ BiDi:
71
+ * Released selenium-devtools 0.115.0 (supports CDP v85, v113, v114, v115)
72
+ Edge:
73
+ * Adding ignore process match for IE Mode across bindings (#12279)
74
+
75
+ 4.10.0 (2023-06-07)
76
+ =========================
77
+ Ruby:
78
+ * Implement proxy support for Selenium Manager
79
+ * Prevent setting driver log level in Safari
80
+ * Change all Selenium Manager logging to :debug (#12145)
81
+ * Error messages include links to documentation
82
+ * Add custom error class for driver location and improve error logic
83
+
84
+ BiDi:
85
+ * Released selenium-devtools 0.114.0 (supports CDP v85, v112, v113, v114)
86
+
87
+ Edge:
88
+ * Add support for webview2
89
+
90
+ 4.9.1 (2023-05-08)
91
+ =========================
92
+ Ruby:
93
+ * Allow users to specify driver process output in Service class (#11964)
94
+ * Updated minimum required Ruby version to 3.0
95
+ * Selenium Logger defaults to :info and all debugging is now logged as :debug (#11967)
96
+ * Every logging entry can be ignored based on ID, not just warnings
97
+ * Logging entries can be filtered to allow or ignore specific IDs
98
+
99
+ BiDi:
100
+ * Fix bug with loading devtools (#11931) (thanks Boris Petrov!)
101
+ * Released selenium-devtools 0.113.0 (supports CDP v85, v111, v112, v113)
102
+
103
+ 4.9.0 (2023-04-21)
104
+ =========================
105
+ Ruby:
106
+ * Fix devtools version fallback (#11869)
107
+ * Fix bug in selenium manager escaping back slashes in Windows (#11884)
108
+
109
+ BiDi:
110
+ * Released selenium-devtools 0.112.0 (supports CDP v85, v110, v111, v112)
111
+
112
+ 4.8.6 (2023-03-29)
113
+ =========================
114
+ Ruby:
115
+ * Properly escape arguments passed to Selenium Manager
116
+
117
+ 4.8.5 (2023-03-28)
118
+ =========================
119
+ Ruby:
120
+ * Wrapping browser name in quotes when calling Selenium Manager
121
+
122
+ 4.8.4 (2023-03-28)
123
+ =========================
124
+ Ruby:
125
+ * Update the selenium-manager versions to fix an IE naming issue (#11828)
126
+
127
+ 4.8.3 (2023-03-26)
128
+ =========================
129
+ Ruby:
130
+ * Still need to use driver finder when using capabilities parameter
131
+ * Accommodate Driver Finder being sent something other than an Options instance
132
+
133
+ 4.8.2 (2023-03-24)
134
+ =========================
135
+ Ruby:
136
+ * Ruby driver finder (#11523)
137
+ * Using json output with Selenium Manager
138
+
139
+ BiDi:
140
+ * Released selenium-devtools 0.111.0 (supports CDP v85, v109, v110, v111)
141
+
142
+ 4.8.1 (2023-02-17)
143
+ =========================
144
+ Ruby:
145
+ * Fix autoload of WebDriver::Remote::Bridge::COMMANDS
146
+ * Subclass is setting value before the superclass is setting it to nil
147
+ * Updating Selenium Manager binaries for 4.8.1 release
148
+
149
+ BiDi:
150
+ * Released selenium-devtools 0.110.0 (supports CDP v85, v108, v109, v110)
151
+ * Close BiDi session on closing the last top-level browsing context
152
+ * Add filtering capability to LogInspector
153
+
154
+ 4.8.0 (2023-01-23)
155
+ =========================
156
+ Ruby:
157
+ * Allow updating instance variables on service classes
158
+ * Deprecate extract_service_args processing in service classes
159
+ * Fix bug preventing sending nil to #send_keys with Remote Driver
160
+ * Fix bug with IE specific methods not available to IE Driver
161
+ * Created Chromium superclass for Chrome and Edge
162
+ * Deprecated platform and version setters/getters in Capabilities class
163
+ * Revamped driver constructor logic
164
+ * Fix bug preventing using Safari Technology Preview when using SafariOptions
165
+ * Fix bug preventing more than one driver type to access Selenium Manager
166
+ * Defaults to using Options instead of Capabilities
167
+ * Make Options classes more strict for allowed arguments and types
168
+ * Removed previously deprecated actions class parameters
169
+ * Removed Location struct
170
+ * Add comment with name of large JS executions (#11038)
171
+ * update logger with link on how to use it (#11478)
172
+ * Deprecate #add_option for Option classes in favor of constructor and attr_accessor
173
+ * Deprecate all unrecognized capabilities for Options classes
174
+ * Deprecate support for :capabilities for local drivers
175
+ * Deprecate browser class methods for Capabilities
176
+ * Deprecate #headless! for Chrome and Firefox
177
+
178
+ BiDi:
179
+ * Released selenium-devtools 0.109.0 (supports CDP v85, v107, v108, v109)
180
+ * Add LogInspector (#11368)
181
+ * Add Browsing context commands (#11446)
182
+
183
+ 4.7.1 (2022-12-02)
184
+ =========================
185
+ Ruby:
186
+ * Fix bug preventing selenium manager from using Internet Explorer
187
+
188
+ 4.7.0 (2022-12-01)
189
+ =========================
190
+ BiDi:
191
+ * Released selenium-devtools 0.108.0 (supports CDP v85, v106, v107, v108)
192
+ * Fix bug with socket stability
193
+
194
+ Ruby:
195
+ * Remove dependency on ChildProcess gem in favor of native Process.spawn (#11251)
196
+ * Add support for Selenium Manager to work with IE Driver
197
+ * Improve error handling for Selenium Manager
198
+
199
+ Safari:
200
+ * Fix bug preventing Safari Options from being used with Safari Technology Preview
201
+
202
+ 4.6.1 (2022-11-04)
203
+ =========================
204
+ Ruby:
205
+ * fix bug preventing selenium-manager from being executable by default
206
+
207
+ 4.6.0 (2022-11-04)
208
+ =========================
209
+ BiDi:
210
+ * Released selenium-devtools 0.107.0 (supports CDP v85, v105, v106, v107)
211
+
212
+ Ruby:
213
+ * firefox scroll by amount is only failing on mac
214
+ * add initial support for selenium manager
215
+ * Revert "[rb] do not allow Select class to work with disabled selects"
216
+ * Make sure selenium-manager is packed into gem
217
+ * Fix platform list in #scroll_by guard
218
+
219
+ 4.5.0 (2022-09-28)
220
+ =========================
221
+
222
+ BiDi:
223
+ * Released selenium-devtools 0.105.0 (supports CDP v85, v103, v104, v105)
224
+ * Released selenium-devtools 0.106.0 (supports CDP v85, v104, v105, v106)
225
+ * Add HasBiDi support to Chrome
226
+
227
+ Ruby:
228
+ * Fix bug in Platform code
229
+ * Update Select class to error when elements are disabled (#10812)
230
+
231
+ Firefox:
232
+ * Add support for installing unsigned add-ons (#10265, thanks TamsilAmani!)
233
+ * Change accept_insecure_certificates to true by default (to match other bindings)
234
+ * Set debugger_address option to true by default
235
+
236
+ Server:
237
+ * Add support for initializing server class with arguments and log level
238
+
239
+ 4.4.0 (2022-08-09)
240
+ =========================
241
+
242
+ BiDi:
243
+ * Released selenium-devtools 0.103.1 to fix websocket dependency requirement
244
+ * Released selenium-devtools 0.104.0 (supports CDP v85, v102, v103, v104)
245
+ * Have network interceptor ignore cancelled requests (#10856)
246
+ * Improve websocket message handling
247
+
248
+ Chromium:
249
+ * Prevent users from setting w3c: false and warn for true (thanks Tamsil Amani!)
250
+
251
+ Ruby:
252
+ * Implement Virtual Authenticator (#10903, #10541) (thanks Tamsil Amani!)
253
+
254
+ 4.3.0 (2022-06-23)
255
+ =========================
256
+
257
+ BiDi:
258
+ * Released selenium-devtools 0.103.0 (supports CDP v85, v101, v102, v103)
259
+
260
+ Ruby:
261
+ * Allow specifying which button is clicked in pointer action class methods
262
+ * Remove deprecated `Persistent` http class
263
+ * Remove deprecated HasRemoteStatus module
264
+ * Remove deprecated `Manager#new_window` and `Manager#logs`
265
+ * `ActionBuilder#move_to` no longer attempts to move to top left corner of element
266
+ * Remove deprecated support for sending Service parameters directly to Driver constructor
267
+ * Remove deprecated setters and getters for driver path on Browser modules
268
+ * Remove deprecated support for passing in options argument to Options class
269
+ * Allow `:options` parameter to take `Options` instance argument like other languages
270
+ * Remove deprecated support for `:desired_capabilities` & `:options` with `Hash` argument
271
+
272
+ 4.2.1 (2022-05-31)
273
+ =========================
274
+
275
+ Ruby
276
+ * Fix bug in setting default duration in Actions constructor
277
+
278
+ 4.2.0 (2022-05-27)
279
+ =========================
280
+
281
+ BiDi:
282
+ * Released selenium-devtools 0.97.0 (supports CDP v85, v95, v96, v97)
283
+ * Released selenium-devtools 0.98.0 (supports CDP v85, v96, v97, v98)
284
+ * Released selenium-devtools 0.99.0 (supports CDP v85, v97, v98, v99)
285
+ * Released selenium-devtools 0.100.0 (supports CDP v85, v98, v99, v100)
286
+ * Released selenium-devtools 0.101.0 (supports CDP v85, v99, v100, v101)
287
+ * Released selenium-devtools 0.102.0 (supports CDP v85, v100, v101, v102)
288
+ * Implement simple BiDi connection
289
+ * Fix bug in initial BiDi implementation (thanks Boris Petrov!)
290
+ * Fix bug with mutating headers in request interception (#10574)
291
+ * Fix bug with empty response headers (thanks Viren Negi!)
292
+
293
+ Firefox:
294
+ * Add support to Firefox Options for environment capability
295
+ * Use addon parameter instead of path parameter to avoid using file detector
296
+ * Restore #from_name method to Firefox profile (#10146)
297
+
298
+ Chromium:
299
+ * Add support for casting desktop
300
+
301
+ Ruby:
302
+ * Updated minimum required Ruby version to 2.7
303
+ * Fix bug by not attempting to stop service process when it's not started (#10015)
304
+ * Fix bug to not stop service process when it's not started (thanks Atsushi Tatsuma!)
305
+ * Use driver endpoint to get page source instead of JavaScript
306
+ * Add zenkaku_hankaku key support
307
+ * Fix download support of Selenium Server
308
+ * Do not convert Tag Name to CSS Selector
309
+
310
+ ActionBuilder:
311
+ * Raise error if input device not found
312
+ * Move `TypingInteraction` from `Interactions::KeyInput` to `Interactions` module
313
+ * Throw better errors for `PointerInput` methods
314
+ * Allow each action interaction class to validate its own source
315
+ * Set all Interactions classes to private
316
+ * Allow device names to use a default id if one is not specified
317
+ * Deprecate default mouse and keyboard values in constructor, favoring devices parameter
318
+ * Add support for pointer event properties
319
+ * Implement scroll wheel support
320
+ * Deprecate ordered pair parameters for pause method in favor of keywords
321
+ * Deprecate move to element with offset changing origin to top left of element
322
+
323
+ 4.1.0 (2021-11-22)
324
+ =========================
325
+
326
+ DevTools:
327
+ * Released selenium-devtools 0.95.0 (supports CDP v85, v93, v94, v95)
328
+ * Released selenium-devtools 0.96.0 (supports CDP v85, v94, v95, v96)
329
+ * Added support for secure websockets (#10017)
330
+
331
+ Ruby:
332
+ * Execute Script supports ShadowRoots (#10019)
333
+ * Fixed bug preventing zipping temp files on Windows (#9987)
334
+ * Sang Pumpkin Carol (thanks Jari!)
335
+
336
+ 4.0.3 (2021-10-20)
337
+ =========================
338
+
339
+ Firefox:
340
+ * Fixed bug avoiding camel casing prefs (#9944 thanks @glaszig)
341
+
342
+ Ruby:
343
+ * Fixed bug in Select class for finding by index (#9945)
344
+
345
+ Remote:
346
+ * Fixed bug preventing sending keys with an empty value
347
+
348
+ 4.0.2 (2021-10-19)
349
+ =========================
350
+
351
+ Server:
352
+ * Fixed bug in new download code.
353
+
354
+ 4.0.1 (2021-10-19)
355
+ =========================
356
+
357
+ Server:
358
+ * Fixed download by pointing to new storage location.
359
+ - Only supports Selenium 4 versions
360
+ * Added default value for Server::get and Server::download to use the latest server version
361
+
362
+ 4.0.0 (2021-10-13)
363
+ =========================
364
+
365
+ Ruby:
366
+ * Updated minimum required Ruby version to 2.6
367
+ * Updated minimum required rexml gem version due to vulnerability
368
+
369
+ Chrome:
370
+ * Added default values for Network Conditions so no longer need to specify everything
371
+
372
+ Firefox:
373
+ * Fixed bug where Firefox prefs were converting snake case to camel case
374
+
375
+ 4.0.0.rc3 (2021-10-08)
376
+ =========================
377
+
378
+ Ruby:
379
+ * Added support for getting timeout values from the driver
380
+
381
+ 4.0.0.rc2 (2021-09-30)
382
+ =========================
383
+
384
+ DevTools:
385
+ * Released selenium-devtools 0.93.0 (2021-09-01)
386
+ - adds CDP version 93
387
+ - removes CDP version 91
388
+ * Released selenium-devtools 0.94.0 (2021-09-22)
389
+ - adds CDP version 94
390
+ - removes CDP version 92
391
+ * Added support for mutating responses in network interception
392
+
393
+ Ruby:
394
+ * Implemented Options#add_option to work for vendor extension capabilities
395
+ * Fixed bug for requiring uri (#9825 thanks @flanger001)
396
+ * Moved New Window functionality to TargetLocator#new_window to be used with Driver#switch_to
397
+ * Deprecated using Manager#new_window
398
+ * Changed order of logging output (#9850)
399
+ * Added support for web_socket_url capability
400
+
401
+ Chromium:
402
+ * Implemented casting functionality
403
+ * Implemented ability to launch chromium app
404
+ * Implemented support for specifying permissions
405
+ * Added support for Chrome-specific Android functionality with #enable_android
406
+
407
+ Firefox:
408
+ * Implemented context functionality
409
+ * Added support for Firefox-specific Android functionality with #enable_android
410
+
411
+ Remote:
412
+ * Added support for file detector to install Firefox addons from client machine
413
+
414
+ 4.0.0.rc1 (2021-09-01)
415
+ =========================
416
+
417
+ DevTools:
418
+ * Released selenium-devtools 0.92.0 (2021-08-21) which:
419
+ - adds CDP versions 92
420
+ - removes CDP versions 88, 89, 90
421
+
422
+ IE:
423
+ * Added options for running Microsoft Edge in IE mode with IE Driver
424
+
425
+ Remote:
426
+ * Added default file detector for remote driver
427
+
428
+ Ruby:
429
+ * Fixed bug for getting valid capability that has not been set
430
+ * Fixed bug preventing loading of ServerError class
431
+
432
+ 4.0.0.beta4 (2021-06-07)
433
+ =========================
434
+
435
+ Chrome:
436
+ * Fixed bug with camel casing of localState object
437
+
438
+ Firefox:
439
+ * Added support for Full Page Screenshots
440
+
441
+ Remote:
442
+ * Added support for #execute_cdp on Chrome and Edge
443
+
444
+ Ruby:
445
+ * Changed capabilities to use alwaysMatch instead of firstMatch by default
446
+ * Fixed bug preventing Options classes from handling Proxy instances
447
+
448
+ 4.0.0.beta3 (2021-04-13)
449
+ =========================
450
+
451
+ Chrome:
452
+ * Fixed a regression with prefs hash keys being converted to camelCase.
453
+ * Fixed an issue when passing Profile object to Options would fail.
454
+
455
+ DevTools:
456
+ * Released selenium-devtools 0.91.0 which:
457
+ - adds CDP versions 90 and 91
458
+ - removes CDP versions 86 and 87
459
+
460
+ Remote:
461
+ * Added support for setting alwaysMatch/firstMatch capabilities per W3C
462
+ WebDriver specification. It's done using the following methods where
463
+ `caps` is either a Ruby hash with desired capabilities or an instance
464
+ of Remote::Capabilities:
465
+ * Selenium::WebDriver::Remote::Capabilities.always_match(caps)
466
+ * Selenium::WebDriver::Remote::Capabilities.first_match(caps)
467
+ * Added support for Driver#save_print_page.
468
+ * Fixed an issue with Driver#print_page.
469
+ * Added support for setting timeouts capabilities in Remote::Capabilities
470
+ per W3C WebDriver specification.
471
+ * Added support for Element#aria_role which returns WAI-ARIA role of the element.
472
+ * Added support for Element#accessible name which returns WAI-ARIA label of the element.
473
+ * Added support for using DevTools version provided by Grid instead of
474
+ calculating it manually
475
+
476
+ Ruby:
477
+ * Remove JRuby-specific socket poller. Note that this requires JRuby 9.2.8.0+.
478
+
479
+ 4.0.0.beta2 (2021-03-16)
480
+ =========================
481
+
482
+ DevTools:
483
+ * Separated out DevTools methods into selenium-devtools gem to better manage versioning
484
+ * Updated supported versions to 85-89
485
+ * Add support for intercepting browser requests
486
+
487
+ Firefox:
488
+ * Add support for using DevTools commands with Firefox Nightly
489
+
490
+ Remote:
491
+ * Provide access to browser specific driver extensions as appropriate for designated browser
492
+ * Add support for using DevTools commands via Grid
493
+
494
+ Ruby:
495
+ * Spec Guard implementation moved into lib directory for other projects to use
496
+ * Implemented `Element#dom_attribute` to obtain attribute value as defined by w3c specification
497
+ * Implemented `Options#eq?`
498
+ * Allow Options subclass instances to be created from class methods in superclass
499
+
500
+ Safari:
501
+ * Fix bug that prevented usage of Safari Technology Preview
502
+
503
+ 4.0.0.beta1 (2021-02-15)
504
+ =========================
505
+
506
+ DevTools:
507
+ * Updated supported versions to 85-88
508
+
509
+ Edge:
510
+ * Removed support for legacy Edge HTML
511
+
512
+ Firefox:
513
+ * Fixed support for default profile settings
514
+ * Added support for Devtools for Firefox v87+
515
+
516
+ Safari:
517
+ * Removed default platformName specification so it works with Grid
518
+
519
+ Ruby:
520
+ * Added support for httpOnly attribute in Cookies
521
+ * Implemented `#print_page` method (thanks @raju249)
522
+ * Fixed support for missing libraries in Ruby 3.0 (thanks @znz)
523
+ * Deprecated `HTTP::Persistent` class
524
+ * Fixed support for accessors in options classes
525
+ * Added support for status endpoint for all browsers
526
+ * Fix support for Browser, Driver, and Performance Logging in Chrome and Edge
527
+
528
+ 4.0.0.alpha7 (2020-11-10)
529
+ =========================
530
+
531
+ Chrome:
532
+ * Fixed a link to download ChromeDriver when it's not found (thanks @masakazutakewaka).
533
+ * Fixed an issue when passing instance of Profile to an Options in capabilities
534
+ (thanks @masakazutakewaka).
535
+
536
+ DevTools:
537
+ * Added support for multiple version of CDP. Currently supported versions are
538
+ 84-87. The proper version is automatically selected when the browser is started
539
+ based on its version. The implementation is Chromium-based and is confirmed
540
+ to work in Chrome and Edge at least.
541
+ * Added support for basic authentication (see HasAuthentication).
542
+ * Added support for listening to JavaScript console messages (see HasLogEvents).
543
+ * Added support for listening to JavaScript exceptions (see HasLogEvents).
544
+ * Added support for listening to DOM mutations (see HasLogEvents).
545
+
546
+ Edge:
547
+ * Switched default Edge implementation to Chromium-based. To use older versions
548
+ of Edge, pass :edge_html when initializing the driver.
549
+
550
+ Firefox:
551
+ * Fixed an issue whereby using the new capabilities structure in local drivers
552
+ would cause the W3C check to complain that `browser_name` was an invalid
553
+ capability key name (thanks @luke-hill)
554
+
555
+ Ruby:
556
+ * Added support for taking screenshots of individual elements using Element#screenshot
557
+ (thanks @johndouthat).
558
+ * Fixed deprecation message of using Net::HTTP::Proxy (thanks @masakazutakewaka).
559
+ * Fixed false negative detection of Linux on WSL2 (thanks @snsten).
560
+ * Support ChildProcess 4.x versions (thanks @boutil).
561
+
562
+ Safari:
563
+ * Fixed browser name in capabilities for Safari Technology Preview.
564
+
565
+ 4.0.0.alpha6 (2020-05-28)
566
+ =========================
567
+
568
+ Chrome:
569
+ * Added DevTools classes and methods generated from the CDP specification.
570
+ It currently supports commands and events and provides Rubyish API:
571
+ driver.devtools.page.navigate(url: 'http://google.com')
572
+ driver.devtools.console.clear_messages
573
+ driver.devtools.page.enable
574
+ driver.devtools.page.on(:load_event_fired) do |params|
575
+ puts("Page loaded in #{params['timestamp']}")
576
+ end
577
+ Check https://chromedevtools.github.io/devtools-protocol/ for more information
578
+ about possible commands and events. Please note that this API is considered
579
+ to be experimental and may change any time before stable 4.0 release.
580
+ * Fixed an issue when passing :prompt_for_download (or similar snake_cased
581
+ symbols) in Options#prefs would be ignored by Chrome because Selenium
582
+ would internally convert it to camelCased format (:promptForDownload).
583
+ Now :prefs are left intact.
584
+
585
+ Edge:
586
+ * Fixed an issue when Driver#execute_cdp would not work for Chromium-based
587
+ Edge browser.
588
+
589
+ Ruby:
590
+ * Deprecated passing :desired_capabilities and :options to driver initialization
591
+ in favor of :capabilities. They now can be combined in an array to make
592
+ custom capabilities requirements:
593
+ caps = Selenium::WebDriver::Remote::Capabilities.chrome
594
+ opts = Selenium::WebDriver::Chrome::Options.new
595
+ Selenium::WebDriver.for(:remote, capabilities: :chrome)
596
+ Selenium::WebDriver.for(:remote, capabilities: caps)
597
+ Selenium::WebDriver.for(:remote, capabilities: opts)
598
+ Selenium::WebDriver.for(:remote, capabilities: [caps, opts])
599
+ * Deprecated passing Hash to :capabilities in favor of Remote::Capabilities object.
600
+ * Updated minimum require Ruby version to 2.5.
601
+ * Improved keyword arguments handling to avoid warnings in Ruby 2.7.
602
+
603
+ 4.0.0.alpha5 (2020-03-18)
604
+ =========================
605
+
606
+ The release is just to synchronize version with other bindings and does not
607
+ include any changes.
608
+
609
+ 4.0.0.alpha4 (2020-01-09)
610
+ =========================
611
+
612
+ Ruby:
613
+ * Added initial support for relative locators, which allow to find elements
614
+ above/below/left/right/near another element. For example, you can find all
615
+ the cells in a table to the right of your starting cell:
616
+ start_cell = driver.find_element(css: 'td')
617
+ right_cells = driver.find_elements(relative: {tag_name: 'td', right: start_cell})
618
+ The documentation is still lacking so refer to examples in df6be2e962.
619
+ * Added ability to silence certain logger messages by using it's identifiers:
620
+ Selenium::WebDriver.logger.ignore(:driver_path)
621
+ * Added new dependency: websocket. It's used for communicating with Chrome DevTools.
622
+ * Loosened childprocess dependency to allow using version 2.0+.
623
+ * Loosened rubyzip dependency to allow using version 2.0+.
624
+ * Fixed Errno::EACCES error on Linux DeX and similar distributes
625
+
626
+ Chrome:
627
+ * Added initial support for communicating with Chrome DevTools. The implementation
628
+ is very basic and lacks CDP domains, events and types - those will be added
629
+ in future releases. Still, it allows to execute simple commands to DevTools:
630
+ driver.devtools.send('Page.navigate', {url: 'https://google.com'})
631
+
632
+ 4.0.0.alpha3 (2019-07-08)
633
+ =========================
634
+
635
+ Ruby:
636
+ * All documented driver capabilities supported in respective browser Options class by constructor and accessor
637
+ * Driver constructor :options and :desired_capabilities generate the same capabilities for local and remote execution
638
+ * Deprecated :options as keyword for initializing browser Options classes
639
+
640
+ Chrome:
641
+ * Add support for browser logging with latest versions of chromedriver
642
+
643
+ Edge:
644
+ * Add support for Chromium based implementation
645
+
646
+ 4.0.0.alpha2 (2019-05-02)
647
+ =========================
648
+
649
+ Ruby:
650
+ * Fixed an issue with previous alpha release which lead to removed files
651
+ being packaged inside the gem
652
+
653
+ 4.0.0.alpha1 (2019-05-01)
654
+ =========================
655
+
656
+ Ruby:
657
+ * Removed Mouse and Keyboard as their implementations are not compliant to WebDriver specification
658
+ * Removed TouchActionBuilder as its implementation is not compliant to WebDriver specification
659
+ * Change ActionBuilder to be fully compliant to WebDriver specification
660
+ * Change Manager to be fully compliant to WebDriver specification
661
+ * Removed all deprecated errors that are not compliant to WebDriver specification
662
+ * Update minimum required Ruby version to 2.4
663
+ * Changed capabilities to use only those that are compliant to WebDriver specification
664
+ * Removed deprecated timeout setter on default HTTP client
665
+ * Removed deprecated Remote::W3C::Capabilities
666
+ * Fixed an issue when services are not shutdown properly
667
+
668
+ Chrome:
669
+ * Removed support for OSS mode - use W3C mode instead by using
670
+ Selenium::WebDriver::Chrome::Options.new(options: {w3c: true})
671
+
672
+ PhantomJS:
673
+ * Removed support for PhantomJS driver
674
+
675
+ Firefox:
676
+ * Removed support for legacy Firefox driver - use GeckoDriver instead
677
+ * Removed deprecated outdated capabilities
678
+ * Fixed an issue when passing :profile string to Firefox::Options.new would
679
+ result in NoMethodError. Now it will find a profile with such name on your
680
+ system and use it accordingly (issue #7119)
681
+
1
682
  3.142.7 (2019-12-27)
2
683
  ====================
3
684
 
@@ -30,7 +711,6 @@ Firefox:
30
711
  * Fixed a regression when Firefox binary path was not sent to GeckoDriver
31
712
  by default and browser could not be located (issue #7219)
32
713
 
33
-
34
714
  3.142.2 (2019-05-11)
35
715
  ====================
36
716
 
@@ -581,11 +1261,11 @@ Ruby:
581
1261
  * Fix bug in auto detection of drivers which allowed selection of non-executable binaries
582
1262
 
583
1263
  W3C:
584
- * Implement #cookie_named and #delete_all_cookies methods (thanks lmtierney)
585
- * Implement element #property method (thanks lmtierney)
1264
+ * Implement #cookie_named and #delete_all_cookies methods (thanks lmtierney)
1265
+ * Implement element #property method (thanks lmtierney)
586
1266
 
587
1267
  Chrome:
588
- * Fix bug in switches (thanks danvine)
1268
+ * Fix bug in switches (thanks danvine)
589
1269
 
590
1270
  3.0.1 (2016-11-06)
591
1271
  ===================
@@ -607,7 +1287,7 @@ Ruby:
607
1287
  * Add support for latest driver options
608
1288
  * Add support for :port parameter for launching driver
609
1289
  * Add support for :service_args parameter for driver command line switches
610
- * Improve reliability by increasing service shutdown timeout (#2815; thanks John Barbuto )
1290
+ * Improve reliability by increasing service shutdown timeout (#2815; thanks John Barbuto )
611
1291
 
612
1292
  Firefox:
613
1293
  * Add support for :firefox_options in geckodriver