selenium-webdriver 3.142.7 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES +432 -5
  3. data/Gemfile +3 -1
  4. data/LICENSE +1 -1
  5. data/NOTICE +2 -0
  6. data/README.md +4 -5
  7. data/lib/selenium/server.rb +75 -64
  8. data/lib/selenium/webdriver/atoms/findElements.js +122 -0
  9. data/lib/selenium/webdriver/atoms/getAttribute.js +100 -7
  10. data/lib/selenium/webdriver/atoms/isDisplayed.js +76 -78
  11. data/lib/selenium/webdriver/atoms/mutationListener.js +55 -0
  12. data/lib/selenium/webdriver/bidi/session.rb +38 -0
  13. data/lib/selenium/webdriver/bidi.rb +55 -0
  14. data/lib/selenium/webdriver/chrome/driver.rb +26 -83
  15. data/lib/selenium/webdriver/chrome/{bridge.rb → features.rb} +55 -12
  16. data/lib/selenium/webdriver/chrome/options.rb +138 -67
  17. data/lib/selenium/webdriver/chrome/profile.rb +6 -3
  18. data/lib/selenium/webdriver/chrome/service.rb +8 -15
  19. data/lib/selenium/webdriver/chrome.rb +5 -18
  20. data/lib/selenium/webdriver/common/action_builder.rb +171 -236
  21. data/lib/selenium/webdriver/common/driver.rb +76 -29
  22. data/lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb +43 -0
  23. data/lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb +51 -0
  24. data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +89 -0
  25. data/lib/selenium/webdriver/common/driver_extensions/{has_touch_screen.rb → has_bidi.rb} +10 -8
  26. data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +87 -0
  27. data/lib/selenium/webdriver/common/driver_extensions/has_cdp.rb +38 -0
  28. data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +44 -0
  29. data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +43 -0
  30. data/lib/selenium/webdriver/common/driver_extensions/has_launching.rb +38 -0
  31. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +5 -8
  32. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +144 -0
  33. data/lib/selenium/webdriver/common/driver_extensions/{has_remote_status.rb → has_logs.rb} +4 -4
  34. data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +17 -0
  35. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +6 -27
  36. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +136 -0
  37. data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +11 -11
  38. data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +77 -0
  39. data/lib/selenium/webdriver/common/driver_extensions/{rotatable.rb → prints_page.rb} +18 -20
  40. data/lib/selenium/webdriver/common/element.rb +83 -23
  41. data/lib/selenium/webdriver/common/error.rb +32 -196
  42. data/lib/selenium/webdriver/common/interactions/input_device.rb +10 -4
  43. data/lib/selenium/webdriver/common/interactions/interaction.rb +12 -22
  44. data/lib/selenium/webdriver/common/interactions/interactions.rb +24 -4
  45. data/lib/selenium/webdriver/common/interactions/key_actions.rb +10 -6
  46. data/lib/selenium/webdriver/common/interactions/key_input.rb +11 -27
  47. data/lib/selenium/webdriver/common/interactions/none_input.rb +10 -8
  48. data/lib/selenium/webdriver/common/interactions/pause.rb +49 -0
  49. data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +68 -78
  50. data/lib/selenium/webdriver/common/interactions/pointer_cancel.rb +45 -0
  51. data/lib/selenium/webdriver/common/interactions/pointer_event_properties.rb +63 -0
  52. data/lib/selenium/webdriver/common/interactions/pointer_input.rb +15 -84
  53. data/lib/selenium/webdriver/common/interactions/pointer_move.rb +60 -0
  54. data/lib/selenium/webdriver/common/interactions/pointer_press.rb +85 -0
  55. data/lib/selenium/webdriver/common/interactions/scroll.rb +57 -0
  56. data/lib/selenium/webdriver/common/interactions/scroll_origin.rb +48 -0
  57. data/lib/selenium/webdriver/common/interactions/typing_interaction.rb +54 -0
  58. data/lib/selenium/webdriver/common/interactions/wheel_actions.rb +113 -0
  59. data/lib/selenium/webdriver/common/{w3c_manager.rb → interactions/wheel_input.rb} +14 -17
  60. data/lib/selenium/webdriver/common/keys.rb +1 -0
  61. data/lib/selenium/webdriver/common/log_entry.rb +2 -2
  62. data/lib/selenium/webdriver/common/logger.rb +50 -15
  63. data/lib/selenium/webdriver/common/manager.rb +11 -38
  64. data/lib/selenium/webdriver/common/options.rb +147 -23
  65. data/lib/selenium/webdriver/common/platform.rb +10 -5
  66. data/lib/selenium/webdriver/common/port_prober.rb +4 -6
  67. data/lib/selenium/webdriver/common/profile_helper.rb +11 -9
  68. data/lib/selenium/webdriver/common/proxy.rb +6 -3
  69. data/lib/selenium/webdriver/common/search_context.rb +7 -9
  70. data/lib/selenium/webdriver/common/service.rb +17 -125
  71. data/lib/selenium/webdriver/common/service_manager.rb +150 -0
  72. data/lib/selenium/webdriver/common/shadow_root.rb +87 -0
  73. data/lib/selenium/webdriver/common/socket_lock.rb +2 -2
  74. data/lib/selenium/webdriver/common/socket_poller.rb +3 -3
  75. data/lib/selenium/webdriver/common/takes_screenshot.rb +66 -0
  76. data/lib/selenium/webdriver/common/target_locator.rb +32 -4
  77. data/lib/selenium/webdriver/common/timeouts.rb +31 -4
  78. data/lib/selenium/webdriver/common/wait.rb +1 -1
  79. data/lib/selenium/webdriver/common/websocket_connection.rb +149 -0
  80. data/lib/selenium/webdriver/common/window.rb +0 -4
  81. data/lib/selenium/webdriver/common/zipper.rb +3 -9
  82. data/lib/selenium/webdriver/common.rb +35 -18
  83. data/lib/selenium/webdriver/devtools/console_event.rb +38 -0
  84. data/lib/selenium/webdriver/devtools/exception_event.rb +36 -0
  85. data/lib/selenium/webdriver/devtools/mutation_event.rb +37 -0
  86. data/lib/selenium/webdriver/devtools/pinned_script.rb +59 -0
  87. data/lib/selenium/webdriver/devtools/request.rb +67 -0
  88. data/lib/selenium/webdriver/devtools/response.rb +66 -0
  89. data/lib/selenium/webdriver/devtools.rb +86 -0
  90. data/lib/selenium/webdriver/edge/driver.rb +7 -29
  91. data/lib/selenium/webdriver/edge/features.rb +45 -0
  92. data/lib/selenium/webdriver/edge/options.rb +11 -48
  93. data/lib/selenium/webdriver/edge/profile.rb +33 -0
  94. data/lib/selenium/webdriver/edge/service.rb +10 -26
  95. data/lib/selenium/webdriver/edge.rb +11 -14
  96. data/lib/selenium/webdriver/firefox/driver.rb +32 -19
  97. data/lib/selenium/webdriver/firefox/extension.rb +8 -0
  98. data/lib/selenium/webdriver/firefox/features.rb +63 -0
  99. data/lib/selenium/webdriver/firefox/options.rb +73 -50
  100. data/lib/selenium/webdriver/firefox/profile.rb +16 -70
  101. data/lib/selenium/webdriver/firefox/service.rb +5 -9
  102. data/lib/selenium/webdriver/firefox/util.rb +1 -1
  103. data/lib/selenium/webdriver/firefox.rb +17 -28
  104. data/lib/selenium/webdriver/ie/driver.rb +1 -47
  105. data/lib/selenium/webdriver/ie/options.rb +15 -46
  106. data/lib/selenium/webdriver/ie/service.rb +13 -15
  107. data/lib/selenium/webdriver/ie.rb +3 -16
  108. data/lib/selenium/webdriver/remote/bridge.rb +563 -86
  109. data/lib/selenium/webdriver/remote/capabilities.rb +159 -123
  110. data/lib/selenium/webdriver/remote/commands.rb +158 -0
  111. data/lib/selenium/webdriver/remote/driver.rb +22 -13
  112. data/lib/selenium/webdriver/remote/http/common.rb +0 -5
  113. data/lib/selenium/webdriver/remote/http/default.rb +22 -31
  114. data/lib/selenium/webdriver/remote/response.rb +18 -49
  115. data/lib/selenium/webdriver/remote.rb +15 -12
  116. data/lib/selenium/webdriver/safari/driver.rb +3 -31
  117. data/lib/selenium/webdriver/safari/{bridge.rb → features.rb} +3 -3
  118. data/lib/selenium/webdriver/safari/options.rb +10 -29
  119. data/lib/selenium/webdriver/safari/service.rb +4 -8
  120. data/lib/selenium/webdriver/safari.rb +13 -19
  121. data/lib/selenium/webdriver/support/block_event_listener.rb +1 -1
  122. data/lib/selenium/webdriver/support/cdp/domain.rb.erb +63 -0
  123. data/lib/selenium/webdriver/support/cdp_client_generator.rb +108 -0
  124. data/lib/selenium/webdriver/support/color.rb +9 -9
  125. data/lib/selenium/webdriver/support/event_firing_bridge.rb +4 -4
  126. data/lib/selenium/webdriver/support/guards/guard.rb +89 -0
  127. data/lib/selenium/webdriver/{firefox/marionette/bridge.rb → support/guards/guard_condition.rb} +22 -19
  128. data/lib/selenium/webdriver/support/guards.rb +95 -0
  129. data/lib/selenium/webdriver/support/relative_locator.rb +51 -0
  130. data/lib/selenium/webdriver/support/select.rb +3 -3
  131. data/lib/selenium/webdriver/support.rb +1 -0
  132. data/lib/selenium/webdriver/version.rb +1 -1
  133. data/lib/selenium/webdriver.rb +14 -13
  134. data/selenium-webdriver.gemspec +32 -13
  135. metadata +176 -69
  136. data/lib/selenium/webdriver/common/bridge_helper.rb +0 -82
  137. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -64
  138. data/lib/selenium/webdriver/common/keyboard.rb +0 -70
  139. data/lib/selenium/webdriver/common/mouse.rb +0 -89
  140. data/lib/selenium/webdriver/common/touch_action_builder.rb +0 -78
  141. data/lib/selenium/webdriver/common/touch_screen.rb +0 -123
  142. data/lib/selenium/webdriver/common/w3c_action_builder.rb +0 -212
  143. data/lib/selenium/webdriver/edge/bridge.rb +0 -76
  144. data/lib/selenium/webdriver/firefox/binary.rb +0 -187
  145. data/lib/selenium/webdriver/firefox/extension/prefs.json +0 -69
  146. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  147. data/lib/selenium/webdriver/firefox/launcher.rb +0 -111
  148. data/lib/selenium/webdriver/firefox/legacy/driver.rb +0 -83
  149. data/lib/selenium/webdriver/firefox/marionette/driver.rb +0 -90
  150. data/lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so +0 -0
  151. data/lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so +0 -0
  152. data/lib/selenium/webdriver/remote/http/persistent.rb +0 -60
  153. data/lib/selenium/webdriver/remote/oss/bridge.rb +0 -594
  154. data/lib/selenium/webdriver/remote/oss/commands.rb +0 -223
  155. data/lib/selenium/webdriver/remote/w3c/bridge.rb +0 -605
  156. data/lib/selenium/webdriver/remote/w3c/capabilities.rb +0 -310
  157. data/lib/selenium/webdriver/remote/w3c/commands.rb +0 -157
metadata CHANGED
@@ -1,18 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium-webdriver
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.142.7
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Rodionov
8
8
  - Titus Fortner
9
9
  - Thomas Walpole
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-12-27 00:00:00.000000000 Z
13
+ date: 2022-06-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
+ name: childprocess
16
17
  requirement: !ruby/object:Gem::Requirement
17
18
  requirements:
18
19
  - - ">="
@@ -20,10 +21,9 @@ dependencies:
20
21
  version: '0.5'
21
22
  - - "<"
22
23
  - !ruby/object:Gem::Version
23
- version: '4.0'
24
- name: childprocess
25
- prerelease: false
24
+ version: '5.0'
26
25
  type: :runtime
26
+ prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
28
28
  requirements:
29
29
  - - ">="
@@ -31,150 +31,233 @@ dependencies:
31
31
  version: '0.5'
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: '4.0'
34
+ version: '5.0'
35
35
  - !ruby/object:Gem::Dependency
36
+ name: rexml
36
37
  requirement: !ruby/object:Gem::Requirement
37
38
  requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '3.2'
38
42
  - - ">="
39
43
  - !ruby/object:Gem::Version
40
- version: 1.2.2
41
- name: rubyzip
44
+ version: 3.2.5
45
+ type: :runtime
42
46
  prerelease: false
47
+ version_requirements: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - "~>"
50
+ - !ruby/object:Gem::Version
51
+ version: '3.2'
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 3.2.5
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubyzip
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 1.2.2
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: '3.0'
43
65
  type: :runtime
66
+ prerelease: false
44
67
  version_requirements: !ruby/object:Gem::Requirement
45
68
  requirements:
46
69
  - - ">="
47
70
  - !ruby/object:Gem::Version
48
71
  version: 1.2.2
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: '3.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: websocket
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.0'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.0'
49
89
  - !ruby/object:Gem::Dependency
90
+ name: ffi
50
91
  requirement: !ruby/object:Gem::Requirement
51
92
  requirements:
52
93
  - - ">="
53
94
  - !ruby/object:Gem::Version
54
95
  version: '0'
55
- name: ffi
56
- prerelease: false
57
96
  type: :development
97
+ prerelease: false
58
98
  version_requirements: !ruby/object:Gem::Requirement
59
99
  requirements:
60
100
  - - ">="
61
101
  - !ruby/object:Gem::Version
62
102
  version: '0'
63
103
  - !ruby/object:Gem::Dependency
104
+ name: pry
64
105
  requirement: !ruby/object:Gem::Requirement
65
106
  requirements:
66
107
  - - "~>"
67
108
  - !ruby/object:Gem::Version
68
- version: '2.0'
69
- name: rack
109
+ version: '0.14'
110
+ type: :development
70
111
  prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '0.14'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rack
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '2.0'
71
124
  type: :development
125
+ prerelease: false
72
126
  version_requirements: !ruby/object:Gem::Requirement
73
127
  requirements:
74
128
  - - "~>"
75
129
  - !ruby/object:Gem::Version
76
130
  version: '2.0'
77
131
  - !ruby/object:Gem::Dependency
132
+ name: rake
78
133
  requirement: !ruby/object:Gem::Requirement
79
134
  requirements:
80
135
  - - ">="
81
136
  - !ruby/object:Gem::Version
82
137
  version: '0'
83
- name: rake
84
- prerelease: false
85
138
  type: :development
139
+ prerelease: false
86
140
  version_requirements: !ruby/object:Gem::Requirement
87
141
  requirements:
88
142
  - - ">="
89
143
  - !ruby/object:Gem::Version
90
144
  version: '0'
91
145
  - !ruby/object:Gem::Dependency
146
+ name: rspec
92
147
  requirement: !ruby/object:Gem::Requirement
93
148
  requirements:
94
149
  - - "~>"
95
150
  - !ruby/object:Gem::Version
96
151
  version: '3.0'
97
- name: rspec
98
- prerelease: false
99
152
  type: :development
153
+ prerelease: false
100
154
  version_requirements: !ruby/object:Gem::Requirement
101
155
  requirements:
102
156
  - - "~>"
103
157
  - !ruby/object:Gem::Version
104
158
  version: '3.0'
105
159
  - !ruby/object:Gem::Dependency
160
+ name: rubocop
106
161
  requirement: !ruby/object:Gem::Requirement
107
162
  requirements:
108
163
  - - "~>"
109
164
  - !ruby/object:Gem::Version
110
- version: 0.67.0
111
- name: rubocop
112
- prerelease: false
165
+ version: '1.22'
113
166
  type: :development
167
+ prerelease: false
114
168
  version_requirements: !ruby/object:Gem::Requirement
115
169
  requirements:
116
170
  - - "~>"
117
171
  - !ruby/object:Gem::Version
118
- version: 0.67.0
172
+ version: '1.22'
119
173
  - !ruby/object:Gem::Dependency
174
+ name: rubocop-performance
120
175
  requirement: !ruby/object:Gem::Requirement
121
176
  requirements:
122
177
  - - ">="
123
178
  - !ruby/object:Gem::Version
124
179
  version: '0'
125
- name: rubocop-performance
126
- prerelease: false
127
180
  type: :development
181
+ prerelease: false
128
182
  version_requirements: !ruby/object:Gem::Requirement
129
183
  requirements:
130
184
  - - ">="
131
185
  - !ruby/object:Gem::Version
132
186
  version: '0'
133
187
  - !ruby/object:Gem::Dependency
188
+ name: rubocop-rake
134
189
  requirement: !ruby/object:Gem::Requirement
135
190
  requirements:
136
191
  - - ">="
137
192
  - !ruby/object:Gem::Version
138
193
  version: '0'
139
- name: rubocop-rspec
194
+ type: :development
140
195
  prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ - !ruby/object:Gem::Dependency
202
+ name: rubocop-rspec
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
141
208
  type: :development
209
+ prerelease: false
142
210
  version_requirements: !ruby/object:Gem::Requirement
143
211
  requirements:
144
212
  - - ">="
145
213
  - !ruby/object:Gem::Version
146
214
  version: '0'
147
215
  - !ruby/object:Gem::Dependency
216
+ name: webmock
148
217
  requirement: !ruby/object:Gem::Requirement
149
218
  requirements:
150
219
  - - "~>"
151
220
  - !ruby/object:Gem::Version
152
221
  version: '3.5'
153
- name: webmock
154
- prerelease: false
155
222
  type: :development
223
+ prerelease: false
156
224
  version_requirements: !ruby/object:Gem::Requirement
157
225
  requirements:
158
226
  - - "~>"
159
227
  - !ruby/object:Gem::Version
160
228
  version: '3.5'
161
229
  - !ruby/object:Gem::Dependency
230
+ name: webrick
162
231
  requirement: !ruby/object:Gem::Requirement
163
232
  requirements:
164
233
  - - "~>"
165
234
  - !ruby/object:Gem::Version
166
- version: 0.9.11
167
- name: yard
235
+ version: '1.7'
236
+ type: :development
168
237
  prerelease: false
238
+ version_requirements: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - "~>"
241
+ - !ruby/object:Gem::Version
242
+ version: '1.7'
243
+ - !ruby/object:Gem::Dependency
244
+ name: yard
245
+ requirement: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - "~>"
248
+ - !ruby/object:Gem::Version
249
+ version: 0.9.11
169
250
  type: :development
251
+ prerelease: false
170
252
  version_requirements: !ruby/object:Gem::Requirement
171
253
  requirements:
172
254
  - - "~>"
173
255
  - !ruby/object:Gem::Version
174
256
  version: 0.9.11
175
- description: WebDriver is a tool for writing automated tests of websites. It aims
176
- to mimic the behaviour of a real user, and as such interacts with the HTML of the
177
- application.
257
+ description: |2
258
+ Selenium implements the W3C WebDriver protocol to automate popular browsers.
259
+ It aims to mimic the behaviour of a real user as it interacts with the application's HTML.
260
+ It's primarily intended for web application testing, but any web-based task can automated.
178
261
  email:
179
262
  - p0deje@gmail.com
180
263
  - titusfortner@gmail.com
@@ -186,37 +269,51 @@ files:
186
269
  - CHANGES
187
270
  - Gemfile
188
271
  - LICENSE
272
+ - NOTICE
189
273
  - README.md
190
274
  - lib/selenium-webdriver.rb
191
275
  - lib/selenium/server.rb
192
276
  - lib/selenium/webdriver.rb
193
277
  - lib/selenium/webdriver/atoms.rb
278
+ - lib/selenium/webdriver/atoms/findElements.js
194
279
  - lib/selenium/webdriver/atoms/getAttribute.js
195
280
  - lib/selenium/webdriver/atoms/isDisplayed.js
281
+ - lib/selenium/webdriver/atoms/mutationListener.js
282
+ - lib/selenium/webdriver/bidi.rb
283
+ - lib/selenium/webdriver/bidi/session.rb
196
284
  - lib/selenium/webdriver/chrome.rb
197
- - lib/selenium/webdriver/chrome/bridge.rb
198
285
  - lib/selenium/webdriver/chrome/driver.rb
286
+ - lib/selenium/webdriver/chrome/features.rb
199
287
  - lib/selenium/webdriver/chrome/options.rb
200
288
  - lib/selenium/webdriver/chrome/profile.rb
201
289
  - lib/selenium/webdriver/chrome/service.rb
202
290
  - lib/selenium/webdriver/common.rb
203
291
  - lib/selenium/webdriver/common/action_builder.rb
204
292
  - lib/selenium/webdriver/common/alert.rb
205
- - lib/selenium/webdriver/common/bridge_helper.rb
206
293
  - lib/selenium/webdriver/common/driver.rb
207
294
  - lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
295
+ - lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb
208
296
  - lib/selenium/webdriver/common/driver_extensions/has_addons.rb
297
+ - lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb
298
+ - lib/selenium/webdriver/common/driver_extensions/has_authentication.rb
299
+ - lib/selenium/webdriver/common/driver_extensions/has_bidi.rb
300
+ - lib/selenium/webdriver/common/driver_extensions/has_casting.rb
301
+ - lib/selenium/webdriver/common/driver_extensions/has_cdp.rb
302
+ - lib/selenium/webdriver/common/driver_extensions/has_context.rb
209
303
  - lib/selenium/webdriver/common/driver_extensions/has_debugger.rb
304
+ - lib/selenium/webdriver/common/driver_extensions/has_devtools.rb
305
+ - lib/selenium/webdriver/common/driver_extensions/has_launching.rb
210
306
  - lib/selenium/webdriver/common/driver_extensions/has_location.rb
307
+ - lib/selenium/webdriver/common/driver_extensions/has_log_events.rb
308
+ - lib/selenium/webdriver/common/driver_extensions/has_logs.rb
211
309
  - lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
212
310
  - lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
311
+ - lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
213
312
  - lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
214
- - lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
313
+ - lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
215
314
  - lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
216
- - lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb
217
315
  - lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
218
- - lib/selenium/webdriver/common/driver_extensions/rotatable.rb
219
- - lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb
316
+ - lib/selenium/webdriver/common/driver_extensions/prints_page.rb
220
317
  - lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
221
318
  - lib/selenium/webdriver/common/element.rb
222
319
  - lib/selenium/webdriver/common/error.rb
@@ -230,15 +327,23 @@ files:
230
327
  - lib/selenium/webdriver/common/interactions/key_actions.rb
231
328
  - lib/selenium/webdriver/common/interactions/key_input.rb
232
329
  - lib/selenium/webdriver/common/interactions/none_input.rb
330
+ - lib/selenium/webdriver/common/interactions/pause.rb
233
331
  - lib/selenium/webdriver/common/interactions/pointer_actions.rb
332
+ - lib/selenium/webdriver/common/interactions/pointer_cancel.rb
333
+ - lib/selenium/webdriver/common/interactions/pointer_event_properties.rb
234
334
  - lib/selenium/webdriver/common/interactions/pointer_input.rb
235
- - lib/selenium/webdriver/common/keyboard.rb
335
+ - lib/selenium/webdriver/common/interactions/pointer_move.rb
336
+ - lib/selenium/webdriver/common/interactions/pointer_press.rb
337
+ - lib/selenium/webdriver/common/interactions/scroll.rb
338
+ - lib/selenium/webdriver/common/interactions/scroll_origin.rb
339
+ - lib/selenium/webdriver/common/interactions/typing_interaction.rb
340
+ - lib/selenium/webdriver/common/interactions/wheel_actions.rb
341
+ - lib/selenium/webdriver/common/interactions/wheel_input.rb
236
342
  - lib/selenium/webdriver/common/keys.rb
237
343
  - lib/selenium/webdriver/common/log_entry.rb
238
344
  - lib/selenium/webdriver/common/logger.rb
239
345
  - lib/selenium/webdriver/common/logs.rb
240
346
  - lib/selenium/webdriver/common/manager.rb
241
- - lib/selenium/webdriver/common/mouse.rb
242
347
  - lib/selenium/webdriver/common/navigation.rb
243
348
  - lib/selenium/webdriver/common/options.rb
244
349
  - lib/selenium/webdriver/common/platform.rb
@@ -247,34 +352,34 @@ files:
247
352
  - lib/selenium/webdriver/common/proxy.rb
248
353
  - lib/selenium/webdriver/common/search_context.rb
249
354
  - lib/selenium/webdriver/common/service.rb
355
+ - lib/selenium/webdriver/common/service_manager.rb
356
+ - lib/selenium/webdriver/common/shadow_root.rb
250
357
  - lib/selenium/webdriver/common/socket_lock.rb
251
358
  - lib/selenium/webdriver/common/socket_poller.rb
359
+ - lib/selenium/webdriver/common/takes_screenshot.rb
252
360
  - lib/selenium/webdriver/common/target_locator.rb
253
361
  - lib/selenium/webdriver/common/timeouts.rb
254
- - lib/selenium/webdriver/common/touch_action_builder.rb
255
- - lib/selenium/webdriver/common/touch_screen.rb
256
- - lib/selenium/webdriver/common/w3c_action_builder.rb
257
- - lib/selenium/webdriver/common/w3c_manager.rb
258
362
  - lib/selenium/webdriver/common/wait.rb
363
+ - lib/selenium/webdriver/common/websocket_connection.rb
259
364
  - lib/selenium/webdriver/common/window.rb
260
365
  - lib/selenium/webdriver/common/zipper.rb
366
+ - lib/selenium/webdriver/devtools.rb
367
+ - lib/selenium/webdriver/devtools/console_event.rb
368
+ - lib/selenium/webdriver/devtools/exception_event.rb
369
+ - lib/selenium/webdriver/devtools/mutation_event.rb
370
+ - lib/selenium/webdriver/devtools/pinned_script.rb
371
+ - lib/selenium/webdriver/devtools/request.rb
372
+ - lib/selenium/webdriver/devtools/response.rb
261
373
  - lib/selenium/webdriver/edge.rb
262
- - lib/selenium/webdriver/edge/bridge.rb
263
374
  - lib/selenium/webdriver/edge/driver.rb
375
+ - lib/selenium/webdriver/edge/features.rb
264
376
  - lib/selenium/webdriver/edge/options.rb
377
+ - lib/selenium/webdriver/edge/profile.rb
265
378
  - lib/selenium/webdriver/edge/service.rb
266
379
  - lib/selenium/webdriver/firefox.rb
267
- - lib/selenium/webdriver/firefox/binary.rb
268
380
  - lib/selenium/webdriver/firefox/driver.rb
269
381
  - lib/selenium/webdriver/firefox/extension.rb
270
- - lib/selenium/webdriver/firefox/extension/prefs.json
271
- - lib/selenium/webdriver/firefox/extension/webdriver.xpi
272
- - lib/selenium/webdriver/firefox/launcher.rb
273
- - lib/selenium/webdriver/firefox/legacy/driver.rb
274
- - lib/selenium/webdriver/firefox/marionette/bridge.rb
275
- - lib/selenium/webdriver/firefox/marionette/driver.rb
276
- - lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so
277
- - lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so
382
+ - lib/selenium/webdriver/firefox/features.rb
278
383
  - lib/selenium/webdriver/firefox/options.rb
279
384
  - lib/selenium/webdriver/firefox/profile.rb
280
385
  - lib/selenium/webdriver/firefox/profiles_ini.rb
@@ -287,39 +392,41 @@ files:
287
392
  - lib/selenium/webdriver/remote.rb
288
393
  - lib/selenium/webdriver/remote/bridge.rb
289
394
  - lib/selenium/webdriver/remote/capabilities.rb
395
+ - lib/selenium/webdriver/remote/commands.rb
290
396
  - lib/selenium/webdriver/remote/driver.rb
291
397
  - lib/selenium/webdriver/remote/http/common.rb
292
398
  - lib/selenium/webdriver/remote/http/curb.rb
293
399
  - lib/selenium/webdriver/remote/http/default.rb
294
- - lib/selenium/webdriver/remote/http/persistent.rb
295
- - lib/selenium/webdriver/remote/oss/bridge.rb
296
- - lib/selenium/webdriver/remote/oss/commands.rb
297
400
  - lib/selenium/webdriver/remote/response.rb
298
401
  - lib/selenium/webdriver/remote/server_error.rb
299
- - lib/selenium/webdriver/remote/w3c/bridge.rb
300
- - lib/selenium/webdriver/remote/w3c/capabilities.rb
301
- - lib/selenium/webdriver/remote/w3c/commands.rb
302
402
  - lib/selenium/webdriver/safari.rb
303
- - lib/selenium/webdriver/safari/bridge.rb
304
403
  - lib/selenium/webdriver/safari/driver.rb
404
+ - lib/selenium/webdriver/safari/features.rb
305
405
  - lib/selenium/webdriver/safari/options.rb
306
406
  - lib/selenium/webdriver/safari/service.rb
307
407
  - lib/selenium/webdriver/support.rb
308
408
  - lib/selenium/webdriver/support/abstract_event_listener.rb
309
409
  - lib/selenium/webdriver/support/block_event_listener.rb
410
+ - lib/selenium/webdriver/support/cdp/domain.rb.erb
411
+ - lib/selenium/webdriver/support/cdp_client_generator.rb
310
412
  - lib/selenium/webdriver/support/color.rb
311
413
  - lib/selenium/webdriver/support/escaper.rb
312
414
  - lib/selenium/webdriver/support/event_firing_bridge.rb
415
+ - lib/selenium/webdriver/support/guards.rb
416
+ - lib/selenium/webdriver/support/guards/guard.rb
417
+ - lib/selenium/webdriver/support/guards/guard_condition.rb
418
+ - lib/selenium/webdriver/support/relative_locator.rb
313
419
  - lib/selenium/webdriver/support/select.rb
314
420
  - lib/selenium/webdriver/version.rb
315
421
  - selenium-webdriver.gemspec
316
- homepage: https://github.com/SeleniumHQ/selenium
422
+ homepage: https://selenium.dev
317
423
  licenses:
318
424
  - Apache-2.0
319
425
  metadata:
320
- changelog_uri: https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES
321
- source_code_uri: https://github.com/SeleniumHQ/selenium/tree/master/rb
322
- post_install_message:
426
+ changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
427
+ source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
428
+ rubygems_mfa_required: 'true'
429
+ post_install_message:
323
430
  rdoc_options: []
324
431
  require_paths:
325
432
  - lib
@@ -327,16 +434,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
327
434
  requirements:
328
435
  - - ">="
329
436
  - !ruby/object:Gem::Version
330
- version: '2.3'
437
+ version: '2.7'
331
438
  required_rubygems_version: !ruby/object:Gem::Requirement
332
439
  requirements:
333
440
  - - ">"
334
441
  - !ruby/object:Gem::Version
335
442
  version: 1.3.1
336
443
  requirements: []
337
- rubyforge_project:
338
- rubygems_version: 2.6.14
339
- signing_key:
444
+ rubygems_version: 3.0.3.1
445
+ signing_key:
340
446
  specification_version: 4
341
- summary: The next generation developer focused tool for automated testing of webapps
447
+ summary: Selenium is a browser automation tool for automated testing of webapps and
448
+ more
342
449
  test_files: []
@@ -1,82 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed to the Software Freedom Conservancy (SFC) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The SFC licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
-
20
- module Selenium
21
- module WebDriver
22
- #
23
- # Shared across bridges
24
- #
25
- # @api private
26
- #
27
-
28
- module BridgeHelper
29
- def unwrap_script_result(arg)
30
- case arg
31
- when Array
32
- arg.map { |e| unwrap_script_result(e) }
33
- when Hash
34
- element_id = element_id_from(arg)
35
- return Element.new(self, element_id) if element_id
36
-
37
- arg.each { |k, v| arg[k] = unwrap_script_result(v) }
38
- else
39
- arg
40
- end
41
- end
42
-
43
- def element_id_from(id)
44
- id['ELEMENT'] || id['element-6066-11e4-a52e-4f735466cecf']
45
- end
46
-
47
- def parse_cookie_string(str)
48
- result = {
49
- 'name' => '',
50
- 'value' => '',
51
- 'domain' => '',
52
- 'path' => '',
53
- 'expires' => '',
54
- 'secure' => false
55
- }
56
-
57
- str.split(';').each do |attribute|
58
- if attribute.include? '='
59
- key, value = attribute.strip.split('=', 2)
60
- if result['name'].empty?
61
- result['name'] = key
62
- result['value'] = value
63
- elsif key == 'domain' && value.strip =~ /^\.(.+)/
64
- result['domain'] = Regexp.last_match(1)
65
- elsif key && value
66
- result[key] = value
67
- end
68
- elsif attribute == 'secure'
69
- result['secure'] = true
70
- end
71
-
72
- unless [nil, '', '0'].include?(result['expires'])
73
- # firefox stores expiry as number of seconds
74
- result['expires'] = Time.at(result['expires'].to_i)
75
- end
76
- end
77
-
78
- result
79
- end
80
- end # BridgeHelper
81
- end # WebDriver
82
- end # Selenium
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed to the Software Freedom Conservancy (SFC) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The SFC licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
-
20
- module Selenium
21
- module WebDriver
22
- #
23
- # @api private
24
- #
25
-
26
- module DriverExtensions
27
- module TakesScreenshot
28
- #
29
- # Save a PNG screenshot to the given path
30
- #
31
- # @api public
32
- #
33
-
34
- def save_screenshot(png_path)
35
- extension = File.extname(png_path).downcase
36
- if extension != '.png'
37
- WebDriver.logger.warn "name used for saved screenshot does not match file type. "\
38
- "It should end with .png extension"
39
- end
40
- File.open(png_path, 'wb') { |f| f << screenshot_as(:png) }
41
- end
42
-
43
- #
44
- # Return a PNG screenshot in the given format as a string
45
- #
46
- # @param [:base64, :png] format
47
- # @return String screenshot
48
- #
49
- # @api public
50
-
51
- def screenshot_as(format)
52
- case format
53
- when :base64
54
- bridge.screenshot
55
- when :png
56
- bridge.screenshot.unpack('m')[0]
57
- else
58
- raise Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
59
- end
60
- end
61
- end # TakesScreenshot
62
- end # DriverExtensions
63
- end # WebDriver
64
- end # Selenium