selenium-webdriver 3.142.6 → 4.1.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 (137) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES +369 -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 +69 -63
  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/chrome/driver.rb +26 -70
  13. data/lib/selenium/webdriver/chrome/{bridge.rb → features.rb} +50 -12
  14. data/lib/selenium/webdriver/chrome/options.rb +128 -53
  15. data/lib/selenium/webdriver/chrome/profile.rb +8 -5
  16. data/lib/selenium/webdriver/chrome/service.rb +8 -15
  17. data/lib/selenium/webdriver/chrome.rb +10 -9
  18. data/lib/selenium/webdriver/common/action_builder.rb +97 -249
  19. data/lib/selenium/webdriver/common/driver.rb +112 -23
  20. data/lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb +43 -0
  21. data/lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb +51 -0
  22. data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +89 -0
  23. data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +77 -0
  24. data/lib/selenium/webdriver/common/driver_extensions/{has_touch_screen.rb → has_cdp.rb} +10 -8
  25. data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +45 -0
  26. data/lib/selenium/webdriver/{firefox/util.rb → common/driver_extensions/has_devtools.rb} +16 -19
  27. data/lib/selenium/webdriver/common/driver_extensions/has_launching.rb +38 -0
  28. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +5 -8
  29. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +144 -0
  30. data/lib/selenium/webdriver/common/driver_extensions/has_logs.rb +30 -0
  31. data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +17 -0
  32. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +6 -27
  33. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +136 -0
  34. data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +11 -11
  35. data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +77 -0
  36. data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +1 -0
  37. data/lib/selenium/webdriver/common/driver_extensions/{rotatable.rb → prints_page.rb} +18 -20
  38. data/lib/selenium/webdriver/common/element.rb +82 -22
  39. data/lib/selenium/webdriver/common/error.rb +32 -196
  40. data/lib/selenium/webdriver/common/interactions/interaction.rb +4 -1
  41. data/lib/selenium/webdriver/common/interactions/key_actions.rb +5 -5
  42. data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +13 -13
  43. data/lib/selenium/webdriver/common/log_entry.rb +2 -2
  44. data/lib/selenium/webdriver/common/logger.rb +50 -15
  45. data/lib/selenium/webdriver/common/manager.rb +15 -15
  46. data/lib/selenium/webdriver/common/options.rb +184 -0
  47. data/lib/selenium/webdriver/common/platform.rb +6 -1
  48. data/lib/selenium/webdriver/common/port_prober.rb +4 -6
  49. data/lib/selenium/webdriver/common/profile_helper.rb +11 -9
  50. data/lib/selenium/webdriver/common/proxy.rb +6 -3
  51. data/lib/selenium/webdriver/common/search_context.rb +7 -3
  52. data/lib/selenium/webdriver/common/service.rb +17 -125
  53. data/lib/selenium/webdriver/common/service_manager.rb +151 -0
  54. data/lib/selenium/webdriver/common/shadow_root.rb +87 -0
  55. data/lib/selenium/webdriver/common/socket_lock.rb +2 -2
  56. data/lib/selenium/webdriver/common/socket_poller.rb +2 -2
  57. data/lib/selenium/webdriver/common/takes_screenshot.rb +66 -0
  58. data/lib/selenium/webdriver/common/target_locator.rb +32 -4
  59. data/lib/selenium/webdriver/common/timeouts.rb +31 -4
  60. data/lib/selenium/webdriver/common/wait.rb +1 -1
  61. data/lib/selenium/webdriver/common/window.rb +0 -4
  62. data/lib/selenium/webdriver/common/zipper.rb +3 -9
  63. data/lib/selenium/webdriver/common.rb +24 -17
  64. data/lib/selenium/webdriver/devtools/console_event.rb +38 -0
  65. data/lib/selenium/webdriver/devtools/exception_event.rb +36 -0
  66. data/lib/selenium/webdriver/devtools/mutation_event.rb +37 -0
  67. data/lib/selenium/webdriver/devtools/pinned_script.rb +59 -0
  68. data/lib/selenium/webdriver/devtools/request.rb +67 -0
  69. data/lib/selenium/webdriver/devtools/response.rb +66 -0
  70. data/lib/selenium/webdriver/devtools.rb +193 -0
  71. data/lib/selenium/webdriver/edge/driver.rb +7 -29
  72. data/lib/selenium/webdriver/edge/features.rb +44 -0
  73. data/lib/selenium/webdriver/edge/options.rb +11 -48
  74. data/lib/selenium/webdriver/{common/w3c_manager.rb → edge/profile.rb} +7 -19
  75. data/lib/selenium/webdriver/edge/service.rb +10 -26
  76. data/lib/selenium/webdriver/edge.rb +11 -14
  77. data/lib/selenium/webdriver/firefox/driver.rb +31 -19
  78. data/lib/selenium/webdriver/firefox/extension.rb +8 -0
  79. data/lib/selenium/webdriver/firefox/features.rb +66 -0
  80. data/lib/selenium/webdriver/firefox/options.rb +71 -50
  81. data/lib/selenium/webdriver/firefox/profile.rb +21 -71
  82. data/lib/selenium/webdriver/firefox/service.rb +5 -9
  83. data/lib/selenium/webdriver/firefox.rb +22 -20
  84. data/lib/selenium/webdriver/ie/driver.rb +1 -47
  85. data/lib/selenium/webdriver/ie/options.rb +15 -46
  86. data/lib/selenium/webdriver/ie/service.rb +13 -15
  87. data/lib/selenium/webdriver/ie.rb +8 -7
  88. data/lib/selenium/webdriver/remote/bridge.rb +561 -86
  89. data/lib/selenium/webdriver/remote/capabilities.rb +159 -123
  90. data/lib/selenium/webdriver/remote/commands.rb +163 -0
  91. data/lib/selenium/webdriver/remote/driver.rb +22 -12
  92. data/lib/selenium/webdriver/remote/http/common.rb +0 -5
  93. data/lib/selenium/webdriver/remote/http/default.rb +17 -20
  94. data/lib/selenium/webdriver/remote/http/persistent.rb +11 -6
  95. data/lib/selenium/webdriver/remote/response.rb +16 -47
  96. data/lib/selenium/webdriver/remote.rb +15 -12
  97. data/lib/selenium/webdriver/safari/driver.rb +3 -31
  98. data/lib/selenium/webdriver/safari/{bridge.rb → features.rb} +3 -3
  99. data/lib/selenium/webdriver/safari/options.rb +10 -29
  100. data/lib/selenium/webdriver/safari/service.rb +4 -8
  101. data/lib/selenium/webdriver/safari.rb +17 -9
  102. data/lib/selenium/webdriver/support/block_event_listener.rb +1 -1
  103. data/lib/selenium/webdriver/support/cdp/domain.rb.erb +63 -0
  104. data/lib/selenium/webdriver/support/cdp_client_generator.rb +108 -0
  105. data/lib/selenium/webdriver/support/color.rb +2 -2
  106. data/lib/selenium/webdriver/support/event_firing_bridge.rb +4 -4
  107. data/lib/selenium/webdriver/support/guards/guard.rb +89 -0
  108. data/lib/selenium/webdriver/{firefox/marionette/bridge.rb → support/guards/guard_condition.rb} +22 -19
  109. data/lib/selenium/webdriver/support/guards.rb +95 -0
  110. data/lib/selenium/webdriver/support/relative_locator.rb +51 -0
  111. data/lib/selenium/webdriver/support/select.rb +3 -3
  112. data/lib/selenium/webdriver/support.rb +1 -0
  113. data/lib/selenium/webdriver/version.rb +1 -1
  114. data/lib/selenium/webdriver.rb +13 -13
  115. data/selenium-webdriver.gemspec +28 -12
  116. metadata +129 -69
  117. data/lib/selenium/webdriver/common/bridge_helper.rb +0 -82
  118. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -64
  119. data/lib/selenium/webdriver/common/keyboard.rb +0 -70
  120. data/lib/selenium/webdriver/common/mouse.rb +0 -89
  121. data/lib/selenium/webdriver/common/touch_action_builder.rb +0 -78
  122. data/lib/selenium/webdriver/common/touch_screen.rb +0 -123
  123. data/lib/selenium/webdriver/common/w3c_action_builder.rb +0 -212
  124. data/lib/selenium/webdriver/edge/bridge.rb +0 -76
  125. data/lib/selenium/webdriver/firefox/binary.rb +0 -187
  126. data/lib/selenium/webdriver/firefox/extension/prefs.json +0 -69
  127. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  128. data/lib/selenium/webdriver/firefox/launcher.rb +0 -111
  129. data/lib/selenium/webdriver/firefox/legacy/driver.rb +0 -83
  130. data/lib/selenium/webdriver/firefox/marionette/driver.rb +0 -90
  131. data/lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so +0 -0
  132. data/lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so +0 -0
  133. data/lib/selenium/webdriver/remote/oss/bridge.rb +0 -594
  134. data/lib/selenium/webdriver/remote/oss/commands.rb +0 -223
  135. data/lib/selenium/webdriver/remote/w3c/bridge.rb +0 -605
  136. data/lib/selenium/webdriver/remote/w3c/capabilities.rb +0 -310
  137. 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.6
4
+ version: 4.1.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-10-04 00:00:00.000000000 Z
13
+ date: 2021-11-22 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,199 @@ 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
43
62
  type: :runtime
63
+ prerelease: false
44
64
  version_requirements: !ruby/object:Gem::Requirement
45
65
  requirements:
46
66
  - - ">="
47
67
  - !ruby/object:Gem::Version
48
68
  version: 1.2.2
49
69
  - !ruby/object:Gem::Dependency
70
+ name: ffi
50
71
  requirement: !ruby/object:Gem::Requirement
51
72
  requirements:
52
73
  - - ">="
53
74
  - !ruby/object:Gem::Version
54
75
  version: '0'
55
- name: ffi
56
- prerelease: false
57
76
  type: :development
77
+ prerelease: false
58
78
  version_requirements: !ruby/object:Gem::Requirement
59
79
  requirements:
60
80
  - - ">="
61
81
  - !ruby/object:Gem::Version
62
82
  version: '0'
63
83
  - !ruby/object:Gem::Dependency
84
+ name: pry
64
85
  requirement: !ruby/object:Gem::Requirement
65
86
  requirements:
66
87
  - - "~>"
67
88
  - !ruby/object:Gem::Version
68
- version: '2.0'
69
- name: rack
89
+ version: '0.14'
90
+ type: :development
70
91
  prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.14'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rack
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.0'
71
104
  type: :development
105
+ prerelease: false
72
106
  version_requirements: !ruby/object:Gem::Requirement
73
107
  requirements:
74
108
  - - "~>"
75
109
  - !ruby/object:Gem::Version
76
110
  version: '2.0'
77
111
  - !ruby/object:Gem::Dependency
112
+ name: rake
78
113
  requirement: !ruby/object:Gem::Requirement
79
114
  requirements:
80
115
  - - ">="
81
116
  - !ruby/object:Gem::Version
82
117
  version: '0'
83
- name: rake
84
- prerelease: false
85
118
  type: :development
119
+ prerelease: false
86
120
  version_requirements: !ruby/object:Gem::Requirement
87
121
  requirements:
88
122
  - - ">="
89
123
  - !ruby/object:Gem::Version
90
124
  version: '0'
91
125
  - !ruby/object:Gem::Dependency
126
+ name: rspec
92
127
  requirement: !ruby/object:Gem::Requirement
93
128
  requirements:
94
129
  - - "~>"
95
130
  - !ruby/object:Gem::Version
96
131
  version: '3.0'
97
- name: rspec
98
- prerelease: false
99
132
  type: :development
133
+ prerelease: false
100
134
  version_requirements: !ruby/object:Gem::Requirement
101
135
  requirements:
102
136
  - - "~>"
103
137
  - !ruby/object:Gem::Version
104
138
  version: '3.0'
105
139
  - !ruby/object:Gem::Dependency
140
+ name: rubocop
106
141
  requirement: !ruby/object:Gem::Requirement
107
142
  requirements:
108
143
  - - "~>"
109
144
  - !ruby/object:Gem::Version
110
- version: 0.67.0
111
- name: rubocop
112
- prerelease: false
145
+ version: 1.8.0
113
146
  type: :development
147
+ prerelease: false
114
148
  version_requirements: !ruby/object:Gem::Requirement
115
149
  requirements:
116
150
  - - "~>"
117
151
  - !ruby/object:Gem::Version
118
- version: 0.67.0
152
+ version: 1.8.0
119
153
  - !ruby/object:Gem::Dependency
154
+ name: rubocop-performance
120
155
  requirement: !ruby/object:Gem::Requirement
121
156
  requirements:
122
157
  - - ">="
123
158
  - !ruby/object:Gem::Version
124
159
  version: '0'
125
- name: rubocop-performance
126
- prerelease: false
127
160
  type: :development
161
+ prerelease: false
128
162
  version_requirements: !ruby/object:Gem::Requirement
129
163
  requirements:
130
164
  - - ">="
131
165
  - !ruby/object:Gem::Version
132
166
  version: '0'
133
167
  - !ruby/object:Gem::Dependency
168
+ name: rubocop-rspec
134
169
  requirement: !ruby/object:Gem::Requirement
135
170
  requirements:
136
171
  - - ">="
137
172
  - !ruby/object:Gem::Version
138
173
  version: '0'
139
- name: rubocop-rspec
140
- prerelease: false
141
174
  type: :development
175
+ prerelease: false
142
176
  version_requirements: !ruby/object:Gem::Requirement
143
177
  requirements:
144
178
  - - ">="
145
179
  - !ruby/object:Gem::Version
146
180
  version: '0'
147
181
  - !ruby/object:Gem::Dependency
182
+ name: webmock
148
183
  requirement: !ruby/object:Gem::Requirement
149
184
  requirements:
150
185
  - - "~>"
151
186
  - !ruby/object:Gem::Version
152
187
  version: '3.5'
153
- name: webmock
154
- prerelease: false
155
188
  type: :development
189
+ prerelease: false
156
190
  version_requirements: !ruby/object:Gem::Requirement
157
191
  requirements:
158
192
  - - "~>"
159
193
  - !ruby/object:Gem::Version
160
194
  version: '3.5'
161
195
  - !ruby/object:Gem::Dependency
196
+ name: webrick
162
197
  requirement: !ruby/object:Gem::Requirement
163
198
  requirements:
164
199
  - - "~>"
165
200
  - !ruby/object:Gem::Version
166
- version: 0.9.11
167
- name: yard
201
+ version: '1.7'
202
+ type: :development
168
203
  prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '1.7'
209
+ - !ruby/object:Gem::Dependency
210
+ name: yard
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: 0.9.11
169
216
  type: :development
217
+ prerelease: false
170
218
  version_requirements: !ruby/object:Gem::Requirement
171
219
  requirements:
172
220
  - - "~>"
173
221
  - !ruby/object:Gem::Version
174
222
  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.
223
+ description: |2
224
+ Selenium implements the W3C WebDriver protocol to automate popular browsers.
225
+ It aims to mimic the behaviour of a real user as it interacts with the application's HTML.
226
+ It's primarily intended for web application testing, but any web-based task can automated.
178
227
  email:
179
228
  - p0deje@gmail.com
180
229
  - titusfortner@gmail.com
@@ -186,37 +235,49 @@ files:
186
235
  - CHANGES
187
236
  - Gemfile
188
237
  - LICENSE
238
+ - NOTICE
189
239
  - README.md
190
240
  - lib/selenium-webdriver.rb
191
241
  - lib/selenium/server.rb
192
242
  - lib/selenium/webdriver.rb
193
243
  - lib/selenium/webdriver/atoms.rb
244
+ - lib/selenium/webdriver/atoms/findElements.js
194
245
  - lib/selenium/webdriver/atoms/getAttribute.js
195
246
  - lib/selenium/webdriver/atoms/isDisplayed.js
247
+ - lib/selenium/webdriver/atoms/mutationListener.js
196
248
  - lib/selenium/webdriver/chrome.rb
197
- - lib/selenium/webdriver/chrome/bridge.rb
198
249
  - lib/selenium/webdriver/chrome/driver.rb
250
+ - lib/selenium/webdriver/chrome/features.rb
199
251
  - lib/selenium/webdriver/chrome/options.rb
200
252
  - lib/selenium/webdriver/chrome/profile.rb
201
253
  - lib/selenium/webdriver/chrome/service.rb
202
254
  - lib/selenium/webdriver/common.rb
203
255
  - lib/selenium/webdriver/common/action_builder.rb
204
256
  - lib/selenium/webdriver/common/alert.rb
205
- - lib/selenium/webdriver/common/bridge_helper.rb
206
257
  - lib/selenium/webdriver/common/driver.rb
207
258
  - lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
259
+ - lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb
208
260
  - lib/selenium/webdriver/common/driver_extensions/has_addons.rb
261
+ - lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb
262
+ - lib/selenium/webdriver/common/driver_extensions/has_authentication.rb
263
+ - lib/selenium/webdriver/common/driver_extensions/has_casting.rb
264
+ - lib/selenium/webdriver/common/driver_extensions/has_cdp.rb
265
+ - lib/selenium/webdriver/common/driver_extensions/has_context.rb
209
266
  - lib/selenium/webdriver/common/driver_extensions/has_debugger.rb
267
+ - lib/selenium/webdriver/common/driver_extensions/has_devtools.rb
268
+ - lib/selenium/webdriver/common/driver_extensions/has_launching.rb
210
269
  - lib/selenium/webdriver/common/driver_extensions/has_location.rb
270
+ - lib/selenium/webdriver/common/driver_extensions/has_log_events.rb
271
+ - lib/selenium/webdriver/common/driver_extensions/has_logs.rb
211
272
  - lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
212
273
  - lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
274
+ - lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
213
275
  - lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
276
+ - lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
214
277
  - lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
215
278
  - lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
216
- - lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb
217
279
  - 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
280
+ - lib/selenium/webdriver/common/driver_extensions/prints_page.rb
220
281
  - lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
221
282
  - lib/selenium/webdriver/common/element.rb
222
283
  - lib/selenium/webdriver/common/error.rb
@@ -232,53 +293,50 @@ files:
232
293
  - lib/selenium/webdriver/common/interactions/none_input.rb
233
294
  - lib/selenium/webdriver/common/interactions/pointer_actions.rb
234
295
  - lib/selenium/webdriver/common/interactions/pointer_input.rb
235
- - lib/selenium/webdriver/common/keyboard.rb
236
296
  - lib/selenium/webdriver/common/keys.rb
237
297
  - lib/selenium/webdriver/common/log_entry.rb
238
298
  - lib/selenium/webdriver/common/logger.rb
239
299
  - lib/selenium/webdriver/common/logs.rb
240
300
  - lib/selenium/webdriver/common/manager.rb
241
- - lib/selenium/webdriver/common/mouse.rb
242
301
  - lib/selenium/webdriver/common/navigation.rb
302
+ - lib/selenium/webdriver/common/options.rb
243
303
  - lib/selenium/webdriver/common/platform.rb
244
304
  - lib/selenium/webdriver/common/port_prober.rb
245
305
  - lib/selenium/webdriver/common/profile_helper.rb
246
306
  - lib/selenium/webdriver/common/proxy.rb
247
307
  - lib/selenium/webdriver/common/search_context.rb
248
308
  - lib/selenium/webdriver/common/service.rb
309
+ - lib/selenium/webdriver/common/service_manager.rb
310
+ - lib/selenium/webdriver/common/shadow_root.rb
249
311
  - lib/selenium/webdriver/common/socket_lock.rb
250
312
  - lib/selenium/webdriver/common/socket_poller.rb
313
+ - lib/selenium/webdriver/common/takes_screenshot.rb
251
314
  - lib/selenium/webdriver/common/target_locator.rb
252
315
  - lib/selenium/webdriver/common/timeouts.rb
253
- - lib/selenium/webdriver/common/touch_action_builder.rb
254
- - lib/selenium/webdriver/common/touch_screen.rb
255
- - lib/selenium/webdriver/common/w3c_action_builder.rb
256
- - lib/selenium/webdriver/common/w3c_manager.rb
257
316
  - lib/selenium/webdriver/common/wait.rb
258
317
  - lib/selenium/webdriver/common/window.rb
259
318
  - lib/selenium/webdriver/common/zipper.rb
319
+ - lib/selenium/webdriver/devtools.rb
320
+ - lib/selenium/webdriver/devtools/console_event.rb
321
+ - lib/selenium/webdriver/devtools/exception_event.rb
322
+ - lib/selenium/webdriver/devtools/mutation_event.rb
323
+ - lib/selenium/webdriver/devtools/pinned_script.rb
324
+ - lib/selenium/webdriver/devtools/request.rb
325
+ - lib/selenium/webdriver/devtools/response.rb
260
326
  - lib/selenium/webdriver/edge.rb
261
- - lib/selenium/webdriver/edge/bridge.rb
262
327
  - lib/selenium/webdriver/edge/driver.rb
328
+ - lib/selenium/webdriver/edge/features.rb
263
329
  - lib/selenium/webdriver/edge/options.rb
330
+ - lib/selenium/webdriver/edge/profile.rb
264
331
  - lib/selenium/webdriver/edge/service.rb
265
332
  - lib/selenium/webdriver/firefox.rb
266
- - lib/selenium/webdriver/firefox/binary.rb
267
333
  - lib/selenium/webdriver/firefox/driver.rb
268
334
  - lib/selenium/webdriver/firefox/extension.rb
269
- - lib/selenium/webdriver/firefox/extension/prefs.json
270
- - lib/selenium/webdriver/firefox/extension/webdriver.xpi
271
- - lib/selenium/webdriver/firefox/launcher.rb
272
- - lib/selenium/webdriver/firefox/legacy/driver.rb
273
- - lib/selenium/webdriver/firefox/marionette/bridge.rb
274
- - lib/selenium/webdriver/firefox/marionette/driver.rb
275
- - lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so
276
- - lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so
335
+ - lib/selenium/webdriver/firefox/features.rb
277
336
  - lib/selenium/webdriver/firefox/options.rb
278
337
  - lib/selenium/webdriver/firefox/profile.rb
279
338
  - lib/selenium/webdriver/firefox/profiles_ini.rb
280
339
  - lib/selenium/webdriver/firefox/service.rb
281
- - lib/selenium/webdriver/firefox/util.rb
282
340
  - lib/selenium/webdriver/ie.rb
283
341
  - lib/selenium/webdriver/ie/driver.rb
284
342
  - lib/selenium/webdriver/ie/options.rb
@@ -286,39 +344,41 @@ files:
286
344
  - lib/selenium/webdriver/remote.rb
287
345
  - lib/selenium/webdriver/remote/bridge.rb
288
346
  - lib/selenium/webdriver/remote/capabilities.rb
347
+ - lib/selenium/webdriver/remote/commands.rb
289
348
  - lib/selenium/webdriver/remote/driver.rb
290
349
  - lib/selenium/webdriver/remote/http/common.rb
291
350
  - lib/selenium/webdriver/remote/http/curb.rb
292
351
  - lib/selenium/webdriver/remote/http/default.rb
293
352
  - lib/selenium/webdriver/remote/http/persistent.rb
294
- - lib/selenium/webdriver/remote/oss/bridge.rb
295
- - lib/selenium/webdriver/remote/oss/commands.rb
296
353
  - lib/selenium/webdriver/remote/response.rb
297
354
  - lib/selenium/webdriver/remote/server_error.rb
298
- - lib/selenium/webdriver/remote/w3c/bridge.rb
299
- - lib/selenium/webdriver/remote/w3c/capabilities.rb
300
- - lib/selenium/webdriver/remote/w3c/commands.rb
301
355
  - lib/selenium/webdriver/safari.rb
302
- - lib/selenium/webdriver/safari/bridge.rb
303
356
  - lib/selenium/webdriver/safari/driver.rb
357
+ - lib/selenium/webdriver/safari/features.rb
304
358
  - lib/selenium/webdriver/safari/options.rb
305
359
  - lib/selenium/webdriver/safari/service.rb
306
360
  - lib/selenium/webdriver/support.rb
307
361
  - lib/selenium/webdriver/support/abstract_event_listener.rb
308
362
  - lib/selenium/webdriver/support/block_event_listener.rb
363
+ - lib/selenium/webdriver/support/cdp/domain.rb.erb
364
+ - lib/selenium/webdriver/support/cdp_client_generator.rb
309
365
  - lib/selenium/webdriver/support/color.rb
310
366
  - lib/selenium/webdriver/support/escaper.rb
311
367
  - lib/selenium/webdriver/support/event_firing_bridge.rb
368
+ - lib/selenium/webdriver/support/guards.rb
369
+ - lib/selenium/webdriver/support/guards/guard.rb
370
+ - lib/selenium/webdriver/support/guards/guard_condition.rb
371
+ - lib/selenium/webdriver/support/relative_locator.rb
312
372
  - lib/selenium/webdriver/support/select.rb
313
373
  - lib/selenium/webdriver/version.rb
314
374
  - selenium-webdriver.gemspec
315
- homepage: https://github.com/SeleniumHQ/selenium
375
+ homepage: https://selenium.dev
316
376
  licenses:
317
377
  - Apache-2.0
318
378
  metadata:
319
- changelog_uri: https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES
320
- source_code_uri: https://github.com/SeleniumHQ/selenium/tree/master/rb
321
- post_install_message:
379
+ changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
380
+ source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
381
+ post_install_message:
322
382
  rdoc_options: []
323
383
  require_paths:
324
384
  - lib
@@ -326,16 +386,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
326
386
  requirements:
327
387
  - - ">="
328
388
  - !ruby/object:Gem::Version
329
- version: '2.3'
389
+ version: '2.6'
330
390
  required_rubygems_version: !ruby/object:Gem::Requirement
331
391
  requirements:
332
392
  - - ">"
333
393
  - !ruby/object:Gem::Version
334
394
  version: 1.3.1
335
395
  requirements: []
336
- rubyforge_project:
337
- rubygems_version: 2.6.14
338
- signing_key:
396
+ rubygems_version: 3.0.3
397
+ signing_key:
339
398
  specification_version: 4
340
- summary: The next generation developer focused tool for automated testing of webapps
399
+ summary: Selenium is a browser automation tool for automated testing of webapps and
400
+ more
341
401
  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
@@ -1,70 +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
- # @see ActionBuilder
25
-
26
- class Keyboard
27
- def initialize(bridge)
28
- @bridge = bridge
29
- end
30
-
31
- def send_keys(*keys)
32
- @bridge.send_keys_to_active_element Keys.encode(keys)
33
- end
34
-
35
- #
36
- # Press a modifier key
37
- #
38
- # @see Selenium::WebDriver::Keys
39
- #
40
-
41
- def press(key)
42
- assert_modifier key
43
-
44
- @bridge.send_keys_to_active_element Keys.encode([key])
45
- end
46
-
47
- #
48
- # Release a modifier key
49
- #
50
- # @see Selenium::WebDriver::Keys
51
- #
52
-
53
- def release(key)
54
- assert_modifier key
55
-
56
- @bridge.send_keys_to_active_element Keys.encode([key])
57
- end
58
-
59
- private
60
-
61
- MODIFIERS = %i[control shift alt command meta].freeze
62
-
63
- def assert_modifier(key)
64
- return if MODIFIERS.include? key
65
-
66
- raise ArgumentError, "#{key.inspect} is not a modifier key, expected one of #{MODIFIERS.inspect}"
67
- end
68
- end # Keyboard
69
- end # WebDriver
70
- end # Selenium