selenium-webdriver 3.142.4 → 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 +381 -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 +29 -13
  116. metadata +126 -72
  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.4
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-09-02 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: '3.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,156 +31,199 @@ dependencies:
31
31
  version: '0.5'
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: '3.0'
34
+ version: '5.0'
35
35
  - !ruby/object:Gem::Dependency
36
+ name: rexml
36
37
  requirement: !ruby/object:Gem::Requirement
37
38
  requirements:
38
39
  - - "~>"
39
40
  - !ruby/object:Gem::Version
40
- version: '1.2'
41
+ version: '3.2'
41
42
  - - ">="
42
43
  - !ruby/object:Gem::Version
43
- version: 1.2.2
44
- name: rubyzip
45
- prerelease: false
44
+ version: 3.2.5
46
45
  type: :runtime
46
+ prerelease: false
47
47
  version_requirements: !ruby/object:Gem::Requirement
48
48
  requirements:
49
49
  - - "~>"
50
50
  - !ruby/object:Gem::Version
51
- version: '1.2'
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
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
52
66
  - - ">="
53
67
  - !ruby/object:Gem::Version
54
68
  version: 1.2.2
55
69
  - !ruby/object:Gem::Dependency
70
+ name: ffi
56
71
  requirement: !ruby/object:Gem::Requirement
57
72
  requirements:
58
73
  - - ">="
59
74
  - !ruby/object:Gem::Version
60
75
  version: '0'
61
- name: ffi
62
- prerelease: false
63
76
  type: :development
77
+ prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
84
+ name: pry
70
85
  requirement: !ruby/object:Gem::Requirement
71
86
  requirements:
72
87
  - - "~>"
73
88
  - !ruby/object:Gem::Version
74
- version: '2.0'
75
- name: rack
89
+ version: '0.14'
90
+ type: :development
76
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'
77
104
  type: :development
105
+ prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
108
  - - "~>"
81
109
  - !ruby/object:Gem::Version
82
110
  version: '2.0'
83
111
  - !ruby/object:Gem::Dependency
112
+ name: rake
84
113
  requirement: !ruby/object:Gem::Requirement
85
114
  requirements:
86
115
  - - ">="
87
116
  - !ruby/object:Gem::Version
88
117
  version: '0'
89
- name: rake
90
- prerelease: false
91
118
  type: :development
119
+ prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - ">="
95
123
  - !ruby/object:Gem::Version
96
124
  version: '0'
97
125
  - !ruby/object:Gem::Dependency
126
+ name: rspec
98
127
  requirement: !ruby/object:Gem::Requirement
99
128
  requirements:
100
129
  - - "~>"
101
130
  - !ruby/object:Gem::Version
102
131
  version: '3.0'
103
- name: rspec
104
- prerelease: false
105
132
  type: :development
133
+ prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - "~>"
109
137
  - !ruby/object:Gem::Version
110
138
  version: '3.0'
111
139
  - !ruby/object:Gem::Dependency
140
+ name: rubocop
112
141
  requirement: !ruby/object:Gem::Requirement
113
142
  requirements:
114
143
  - - "~>"
115
144
  - !ruby/object:Gem::Version
116
- version: 0.67.0
117
- name: rubocop
118
- prerelease: false
145
+ version: 1.8.0
119
146
  type: :development
147
+ prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
150
  - - "~>"
123
151
  - !ruby/object:Gem::Version
124
- version: 0.67.0
152
+ version: 1.8.0
125
153
  - !ruby/object:Gem::Dependency
154
+ name: rubocop-performance
126
155
  requirement: !ruby/object:Gem::Requirement
127
156
  requirements:
128
157
  - - ">="
129
158
  - !ruby/object:Gem::Version
130
159
  version: '0'
131
- name: rubocop-performance
132
- prerelease: false
133
160
  type: :development
161
+ prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
164
  - - ">="
137
165
  - !ruby/object:Gem::Version
138
166
  version: '0'
139
167
  - !ruby/object:Gem::Dependency
168
+ name: rubocop-rspec
140
169
  requirement: !ruby/object:Gem::Requirement
141
170
  requirements:
142
171
  - - ">="
143
172
  - !ruby/object:Gem::Version
144
173
  version: '0'
145
- name: rubocop-rspec
146
- prerelease: false
147
174
  type: :development
175
+ prerelease: false
148
176
  version_requirements: !ruby/object:Gem::Requirement
149
177
  requirements:
150
178
  - - ">="
151
179
  - !ruby/object:Gem::Version
152
180
  version: '0'
153
181
  - !ruby/object:Gem::Dependency
182
+ name: webmock
154
183
  requirement: !ruby/object:Gem::Requirement
155
184
  requirements:
156
185
  - - "~>"
157
186
  - !ruby/object:Gem::Version
158
187
  version: '3.5'
159
- name: webmock
160
- prerelease: false
161
188
  type: :development
189
+ prerelease: false
162
190
  version_requirements: !ruby/object:Gem::Requirement
163
191
  requirements:
164
192
  - - "~>"
165
193
  - !ruby/object:Gem::Version
166
194
  version: '3.5'
167
195
  - !ruby/object:Gem::Dependency
196
+ name: webrick
168
197
  requirement: !ruby/object:Gem::Requirement
169
198
  requirements:
170
199
  - - "~>"
171
200
  - !ruby/object:Gem::Version
172
- version: 0.9.11
173
- name: yard
201
+ version: '1.7'
202
+ type: :development
174
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
175
216
  type: :development
217
+ prerelease: false
176
218
  version_requirements: !ruby/object:Gem::Requirement
177
219
  requirements:
178
220
  - - "~>"
179
221
  - !ruby/object:Gem::Version
180
222
  version: 0.9.11
181
- description: WebDriver is a tool for writing automated tests of websites. It aims
182
- to mimic the behaviour of a real user, and as such interacts with the HTML of the
183
- 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.
184
227
  email:
185
228
  - p0deje@gmail.com
186
229
  - titusfortner@gmail.com
@@ -192,37 +235,49 @@ files:
192
235
  - CHANGES
193
236
  - Gemfile
194
237
  - LICENSE
238
+ - NOTICE
195
239
  - README.md
196
240
  - lib/selenium-webdriver.rb
197
241
  - lib/selenium/server.rb
198
242
  - lib/selenium/webdriver.rb
199
243
  - lib/selenium/webdriver/atoms.rb
244
+ - lib/selenium/webdriver/atoms/findElements.js
200
245
  - lib/selenium/webdriver/atoms/getAttribute.js
201
246
  - lib/selenium/webdriver/atoms/isDisplayed.js
247
+ - lib/selenium/webdriver/atoms/mutationListener.js
202
248
  - lib/selenium/webdriver/chrome.rb
203
- - lib/selenium/webdriver/chrome/bridge.rb
204
249
  - lib/selenium/webdriver/chrome/driver.rb
250
+ - lib/selenium/webdriver/chrome/features.rb
205
251
  - lib/selenium/webdriver/chrome/options.rb
206
252
  - lib/selenium/webdriver/chrome/profile.rb
207
253
  - lib/selenium/webdriver/chrome/service.rb
208
254
  - lib/selenium/webdriver/common.rb
209
255
  - lib/selenium/webdriver/common/action_builder.rb
210
256
  - lib/selenium/webdriver/common/alert.rb
211
- - lib/selenium/webdriver/common/bridge_helper.rb
212
257
  - lib/selenium/webdriver/common/driver.rb
213
258
  - lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
259
+ - lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb
214
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
215
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
216
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
217
272
  - lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
218
273
  - lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
274
+ - lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
219
275
  - lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
276
+ - lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
220
277
  - lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
221
278
  - lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
222
- - lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb
223
279
  - lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
224
- - lib/selenium/webdriver/common/driver_extensions/rotatable.rb
225
- - lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb
280
+ - lib/selenium/webdriver/common/driver_extensions/prints_page.rb
226
281
  - lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
227
282
  - lib/selenium/webdriver/common/element.rb
228
283
  - lib/selenium/webdriver/common/error.rb
@@ -238,53 +293,50 @@ files:
238
293
  - lib/selenium/webdriver/common/interactions/none_input.rb
239
294
  - lib/selenium/webdriver/common/interactions/pointer_actions.rb
240
295
  - lib/selenium/webdriver/common/interactions/pointer_input.rb
241
- - lib/selenium/webdriver/common/keyboard.rb
242
296
  - lib/selenium/webdriver/common/keys.rb
243
297
  - lib/selenium/webdriver/common/log_entry.rb
244
298
  - lib/selenium/webdriver/common/logger.rb
245
299
  - lib/selenium/webdriver/common/logs.rb
246
300
  - lib/selenium/webdriver/common/manager.rb
247
- - lib/selenium/webdriver/common/mouse.rb
248
301
  - lib/selenium/webdriver/common/navigation.rb
302
+ - lib/selenium/webdriver/common/options.rb
249
303
  - lib/selenium/webdriver/common/platform.rb
250
304
  - lib/selenium/webdriver/common/port_prober.rb
251
305
  - lib/selenium/webdriver/common/profile_helper.rb
252
306
  - lib/selenium/webdriver/common/proxy.rb
253
307
  - lib/selenium/webdriver/common/search_context.rb
254
308
  - lib/selenium/webdriver/common/service.rb
309
+ - lib/selenium/webdriver/common/service_manager.rb
310
+ - lib/selenium/webdriver/common/shadow_root.rb
255
311
  - lib/selenium/webdriver/common/socket_lock.rb
256
312
  - lib/selenium/webdriver/common/socket_poller.rb
313
+ - lib/selenium/webdriver/common/takes_screenshot.rb
257
314
  - lib/selenium/webdriver/common/target_locator.rb
258
315
  - lib/selenium/webdriver/common/timeouts.rb
259
- - lib/selenium/webdriver/common/touch_action_builder.rb
260
- - lib/selenium/webdriver/common/touch_screen.rb
261
- - lib/selenium/webdriver/common/w3c_action_builder.rb
262
- - lib/selenium/webdriver/common/w3c_manager.rb
263
316
  - lib/selenium/webdriver/common/wait.rb
264
317
  - lib/selenium/webdriver/common/window.rb
265
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
266
326
  - lib/selenium/webdriver/edge.rb
267
- - lib/selenium/webdriver/edge/bridge.rb
268
327
  - lib/selenium/webdriver/edge/driver.rb
328
+ - lib/selenium/webdriver/edge/features.rb
269
329
  - lib/selenium/webdriver/edge/options.rb
330
+ - lib/selenium/webdriver/edge/profile.rb
270
331
  - lib/selenium/webdriver/edge/service.rb
271
332
  - lib/selenium/webdriver/firefox.rb
272
- - lib/selenium/webdriver/firefox/binary.rb
273
333
  - lib/selenium/webdriver/firefox/driver.rb
274
334
  - lib/selenium/webdriver/firefox/extension.rb
275
- - lib/selenium/webdriver/firefox/extension/prefs.json
276
- - lib/selenium/webdriver/firefox/extension/webdriver.xpi
277
- - lib/selenium/webdriver/firefox/launcher.rb
278
- - lib/selenium/webdriver/firefox/legacy/driver.rb
279
- - lib/selenium/webdriver/firefox/marionette/bridge.rb
280
- - lib/selenium/webdriver/firefox/marionette/driver.rb
281
- - lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so
282
- - lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so
335
+ - lib/selenium/webdriver/firefox/features.rb
283
336
  - lib/selenium/webdriver/firefox/options.rb
284
337
  - lib/selenium/webdriver/firefox/profile.rb
285
338
  - lib/selenium/webdriver/firefox/profiles_ini.rb
286
339
  - lib/selenium/webdriver/firefox/service.rb
287
- - lib/selenium/webdriver/firefox/util.rb
288
340
  - lib/selenium/webdriver/ie.rb
289
341
  - lib/selenium/webdriver/ie/driver.rb
290
342
  - lib/selenium/webdriver/ie/options.rb
@@ -292,39 +344,41 @@ files:
292
344
  - lib/selenium/webdriver/remote.rb
293
345
  - lib/selenium/webdriver/remote/bridge.rb
294
346
  - lib/selenium/webdriver/remote/capabilities.rb
347
+ - lib/selenium/webdriver/remote/commands.rb
295
348
  - lib/selenium/webdriver/remote/driver.rb
296
349
  - lib/selenium/webdriver/remote/http/common.rb
297
350
  - lib/selenium/webdriver/remote/http/curb.rb
298
351
  - lib/selenium/webdriver/remote/http/default.rb
299
352
  - lib/selenium/webdriver/remote/http/persistent.rb
300
- - lib/selenium/webdriver/remote/oss/bridge.rb
301
- - lib/selenium/webdriver/remote/oss/commands.rb
302
353
  - lib/selenium/webdriver/remote/response.rb
303
354
  - lib/selenium/webdriver/remote/server_error.rb
304
- - lib/selenium/webdriver/remote/w3c/bridge.rb
305
- - lib/selenium/webdriver/remote/w3c/capabilities.rb
306
- - lib/selenium/webdriver/remote/w3c/commands.rb
307
355
  - lib/selenium/webdriver/safari.rb
308
- - lib/selenium/webdriver/safari/bridge.rb
309
356
  - lib/selenium/webdriver/safari/driver.rb
357
+ - lib/selenium/webdriver/safari/features.rb
310
358
  - lib/selenium/webdriver/safari/options.rb
311
359
  - lib/selenium/webdriver/safari/service.rb
312
360
  - lib/selenium/webdriver/support.rb
313
361
  - lib/selenium/webdriver/support/abstract_event_listener.rb
314
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
315
365
  - lib/selenium/webdriver/support/color.rb
316
366
  - lib/selenium/webdriver/support/escaper.rb
317
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
318
372
  - lib/selenium/webdriver/support/select.rb
319
373
  - lib/selenium/webdriver/version.rb
320
374
  - selenium-webdriver.gemspec
321
- homepage: https://github.com/SeleniumHQ/selenium
375
+ homepage: https://selenium.dev
322
376
  licenses:
323
377
  - Apache-2.0
324
378
  metadata:
325
- changelog_uri: https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES
326
- source_code_uri: https://github.com/SeleniumHQ/selenium/tree/master/rb
327
- 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:
328
382
  rdoc_options: []
329
383
  require_paths:
330
384
  - lib
@@ -332,16 +386,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
332
386
  requirements:
333
387
  - - ">="
334
388
  - !ruby/object:Gem::Version
335
- version: '2.3'
389
+ version: '2.6'
336
390
  required_rubygems_version: !ruby/object:Gem::Requirement
337
391
  requirements:
338
392
  - - ">"
339
393
  - !ruby/object:Gem::Version
340
394
  version: 1.3.1
341
395
  requirements: []
342
- rubyforge_project:
343
- rubygems_version: 2.6.14
344
- signing_key:
396
+ rubygems_version: 3.0.3
397
+ signing_key:
345
398
  specification_version: 4
346
- 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
347
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