selenium-webdriver 3.142.7 → 4.0.3

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 +350 -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 -83
  13. data/lib/selenium/webdriver/chrome/{bridge.rb → features.rb} +50 -12
  14. data/lib/selenium/webdriver/chrome/options.rb +129 -58
  15. data/lib/selenium/webdriver/chrome/profile.rb +6 -3
  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 +154 -23
  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 +1 -9
  63. data/lib/selenium/webdriver/common.rb +23 -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 +182 -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 +70 -49
  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 +13 -44
  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 +558 -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 -13
  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 +12 -12
  115. data/selenium-webdriver.gemspec +28 -12
  116. metadata +128 -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.7
4
+ version: 4.0.3
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: 2021-10-20 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,13 +293,11 @@ 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
243
302
  - lib/selenium/webdriver/common/options.rb
244
303
  - lib/selenium/webdriver/common/platform.rb
@@ -247,39 +306,37 @@ files:
247
306
  - lib/selenium/webdriver/common/proxy.rb
248
307
  - lib/selenium/webdriver/common/search_context.rb
249
308
  - lib/selenium/webdriver/common/service.rb
309
+ - lib/selenium/webdriver/common/service_manager.rb
310
+ - lib/selenium/webdriver/common/shadow_root.rb
250
311
  - lib/selenium/webdriver/common/socket_lock.rb
251
312
  - lib/selenium/webdriver/common/socket_poller.rb
313
+ - lib/selenium/webdriver/common/takes_screenshot.rb
252
314
  - lib/selenium/webdriver/common/target_locator.rb
253
315
  - 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
316
  - lib/selenium/webdriver/common/wait.rb
259
317
  - lib/selenium/webdriver/common/window.rb
260
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
261
326
  - lib/selenium/webdriver/edge.rb
262
- - lib/selenium/webdriver/edge/bridge.rb
263
327
  - lib/selenium/webdriver/edge/driver.rb
328
+ - lib/selenium/webdriver/edge/features.rb
264
329
  - lib/selenium/webdriver/edge/options.rb
330
+ - lib/selenium/webdriver/edge/profile.rb
265
331
  - lib/selenium/webdriver/edge/service.rb
266
332
  - lib/selenium/webdriver/firefox.rb
267
- - lib/selenium/webdriver/firefox/binary.rb
268
333
  - lib/selenium/webdriver/firefox/driver.rb
269
334
  - 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
335
+ - lib/selenium/webdriver/firefox/features.rb
278
336
  - lib/selenium/webdriver/firefox/options.rb
279
337
  - lib/selenium/webdriver/firefox/profile.rb
280
338
  - lib/selenium/webdriver/firefox/profiles_ini.rb
281
339
  - lib/selenium/webdriver/firefox/service.rb
282
- - lib/selenium/webdriver/firefox/util.rb
283
340
  - lib/selenium/webdriver/ie.rb
284
341
  - lib/selenium/webdriver/ie/driver.rb
285
342
  - lib/selenium/webdriver/ie/options.rb
@@ -287,39 +344,41 @@ files:
287
344
  - lib/selenium/webdriver/remote.rb
288
345
  - lib/selenium/webdriver/remote/bridge.rb
289
346
  - lib/selenium/webdriver/remote/capabilities.rb
347
+ - lib/selenium/webdriver/remote/commands.rb
290
348
  - lib/selenium/webdriver/remote/driver.rb
291
349
  - lib/selenium/webdriver/remote/http/common.rb
292
350
  - lib/selenium/webdriver/remote/http/curb.rb
293
351
  - lib/selenium/webdriver/remote/http/default.rb
294
352
  - lib/selenium/webdriver/remote/http/persistent.rb
295
- - lib/selenium/webdriver/remote/oss/bridge.rb
296
- - lib/selenium/webdriver/remote/oss/commands.rb
297
353
  - lib/selenium/webdriver/remote/response.rb
298
354
  - 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
355
  - lib/selenium/webdriver/safari.rb
303
- - lib/selenium/webdriver/safari/bridge.rb
304
356
  - lib/selenium/webdriver/safari/driver.rb
357
+ - lib/selenium/webdriver/safari/features.rb
305
358
  - lib/selenium/webdriver/safari/options.rb
306
359
  - lib/selenium/webdriver/safari/service.rb
307
360
  - lib/selenium/webdriver/support.rb
308
361
  - lib/selenium/webdriver/support/abstract_event_listener.rb
309
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
310
365
  - lib/selenium/webdriver/support/color.rb
311
366
  - lib/selenium/webdriver/support/escaper.rb
312
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
313
372
  - lib/selenium/webdriver/support/select.rb
314
373
  - lib/selenium/webdriver/version.rb
315
374
  - selenium-webdriver.gemspec
316
- homepage: https://github.com/SeleniumHQ/selenium
375
+ homepage: https://selenium.dev
317
376
  licenses:
318
377
  - Apache-2.0
319
378
  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:
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:
323
382
  rdoc_options: []
324
383
  require_paths:
325
384
  - lib
@@ -327,16 +386,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
327
386
  requirements:
328
387
  - - ">="
329
388
  - !ruby/object:Gem::Version
330
- version: '2.3'
389
+ version: '2.6'
331
390
  required_rubygems_version: !ruby/object:Gem::Requirement
332
391
  requirements:
333
392
  - - ">"
334
393
  - !ruby/object:Gem::Version
335
394
  version: 1.3.1
336
395
  requirements: []
337
- rubyforge_project:
338
- rubygems_version: 2.6.14
339
- signing_key:
396
+ rubygems_version: 3.0.3
397
+ signing_key:
340
398
  specification_version: 4
341
- 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
342
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