selenium-webdriver 3.142.7 → 4.16.0

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