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.
- checksums.yaml +5 -5
- data/CHANGES +369 -5
- data/Gemfile +3 -1
- data/LICENSE +1 -1
- data/NOTICE +2 -0
- data/README.md +4 -5
- data/lib/selenium/server.rb +69 -63
- data/lib/selenium/webdriver/atoms/findElements.js +122 -0
- data/lib/selenium/webdriver/atoms/getAttribute.js +100 -7
- data/lib/selenium/webdriver/atoms/isDisplayed.js +76 -78
- data/lib/selenium/webdriver/atoms/mutationListener.js +55 -0
- data/lib/selenium/webdriver/chrome/driver.rb +26 -70
- data/lib/selenium/webdriver/chrome/{bridge.rb → features.rb} +50 -12
- data/lib/selenium/webdriver/chrome/options.rb +128 -53
- data/lib/selenium/webdriver/chrome/profile.rb +8 -5
- data/lib/selenium/webdriver/chrome/service.rb +8 -15
- data/lib/selenium/webdriver/chrome.rb +10 -9
- data/lib/selenium/webdriver/common/action_builder.rb +97 -249
- data/lib/selenium/webdriver/common/driver.rb +112 -23
- data/lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb +43 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb +51 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +89 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +77 -0
- data/lib/selenium/webdriver/common/driver_extensions/{has_touch_screen.rb → has_cdp.rb} +10 -8
- data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +45 -0
- data/lib/selenium/webdriver/{firefox/util.rb → common/driver_extensions/has_devtools.rb} +16 -19
- data/lib/selenium/webdriver/common/driver_extensions/has_launching.rb +38 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +5 -8
- data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +144 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_logs.rb +30 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +17 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +6 -27
- data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +136 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +11 -11
- data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +77 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +1 -0
- data/lib/selenium/webdriver/common/driver_extensions/{rotatable.rb → prints_page.rb} +18 -20
- data/lib/selenium/webdriver/common/element.rb +82 -22
- data/lib/selenium/webdriver/common/error.rb +32 -196
- data/lib/selenium/webdriver/common/interactions/interaction.rb +4 -1
- data/lib/selenium/webdriver/common/interactions/key_actions.rb +5 -5
- data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +13 -13
- data/lib/selenium/webdriver/common/log_entry.rb +2 -2
- data/lib/selenium/webdriver/common/logger.rb +50 -15
- data/lib/selenium/webdriver/common/manager.rb +15 -15
- data/lib/selenium/webdriver/common/options.rb +184 -0
- data/lib/selenium/webdriver/common/platform.rb +6 -1
- data/lib/selenium/webdriver/common/port_prober.rb +4 -6
- data/lib/selenium/webdriver/common/profile_helper.rb +11 -9
- data/lib/selenium/webdriver/common/proxy.rb +6 -3
- data/lib/selenium/webdriver/common/search_context.rb +7 -3
- data/lib/selenium/webdriver/common/service.rb +17 -125
- data/lib/selenium/webdriver/common/service_manager.rb +151 -0
- data/lib/selenium/webdriver/common/shadow_root.rb +87 -0
- data/lib/selenium/webdriver/common/socket_lock.rb +2 -2
- data/lib/selenium/webdriver/common/socket_poller.rb +2 -2
- data/lib/selenium/webdriver/common/takes_screenshot.rb +66 -0
- data/lib/selenium/webdriver/common/target_locator.rb +32 -4
- data/lib/selenium/webdriver/common/timeouts.rb +31 -4
- data/lib/selenium/webdriver/common/wait.rb +1 -1
- data/lib/selenium/webdriver/common/window.rb +0 -4
- data/lib/selenium/webdriver/common/zipper.rb +3 -9
- data/lib/selenium/webdriver/common.rb +24 -17
- data/lib/selenium/webdriver/devtools/console_event.rb +38 -0
- data/lib/selenium/webdriver/devtools/exception_event.rb +36 -0
- data/lib/selenium/webdriver/devtools/mutation_event.rb +37 -0
- data/lib/selenium/webdriver/devtools/pinned_script.rb +59 -0
- data/lib/selenium/webdriver/devtools/request.rb +67 -0
- data/lib/selenium/webdriver/devtools/response.rb +66 -0
- data/lib/selenium/webdriver/devtools.rb +193 -0
- data/lib/selenium/webdriver/edge/driver.rb +7 -29
- data/lib/selenium/webdriver/edge/features.rb +44 -0
- data/lib/selenium/webdriver/edge/options.rb +11 -48
- data/lib/selenium/webdriver/{common/w3c_manager.rb → edge/profile.rb} +7 -19
- data/lib/selenium/webdriver/edge/service.rb +10 -26
- data/lib/selenium/webdriver/edge.rb +11 -14
- data/lib/selenium/webdriver/firefox/driver.rb +31 -19
- data/lib/selenium/webdriver/firefox/extension.rb +8 -0
- data/lib/selenium/webdriver/firefox/features.rb +66 -0
- data/lib/selenium/webdriver/firefox/options.rb +71 -50
- data/lib/selenium/webdriver/firefox/profile.rb +21 -71
- data/lib/selenium/webdriver/firefox/service.rb +5 -9
- data/lib/selenium/webdriver/firefox.rb +22 -20
- data/lib/selenium/webdriver/ie/driver.rb +1 -47
- data/lib/selenium/webdriver/ie/options.rb +15 -46
- data/lib/selenium/webdriver/ie/service.rb +13 -15
- data/lib/selenium/webdriver/ie.rb +8 -7
- data/lib/selenium/webdriver/remote/bridge.rb +561 -86
- data/lib/selenium/webdriver/remote/capabilities.rb +159 -123
- data/lib/selenium/webdriver/remote/commands.rb +163 -0
- data/lib/selenium/webdriver/remote/driver.rb +22 -12
- data/lib/selenium/webdriver/remote/http/common.rb +0 -5
- data/lib/selenium/webdriver/remote/http/default.rb +17 -20
- data/lib/selenium/webdriver/remote/http/persistent.rb +11 -6
- data/lib/selenium/webdriver/remote/response.rb +16 -47
- data/lib/selenium/webdriver/remote.rb +15 -12
- data/lib/selenium/webdriver/safari/driver.rb +3 -31
- data/lib/selenium/webdriver/safari/{bridge.rb → features.rb} +3 -3
- data/lib/selenium/webdriver/safari/options.rb +10 -29
- data/lib/selenium/webdriver/safari/service.rb +4 -8
- data/lib/selenium/webdriver/safari.rb +17 -9
- data/lib/selenium/webdriver/support/block_event_listener.rb +1 -1
- data/lib/selenium/webdriver/support/cdp/domain.rb.erb +63 -0
- data/lib/selenium/webdriver/support/cdp_client_generator.rb +108 -0
- data/lib/selenium/webdriver/support/color.rb +2 -2
- data/lib/selenium/webdriver/support/event_firing_bridge.rb +4 -4
- data/lib/selenium/webdriver/support/guards/guard.rb +89 -0
- data/lib/selenium/webdriver/{firefox/marionette/bridge.rb → support/guards/guard_condition.rb} +22 -19
- data/lib/selenium/webdriver/support/guards.rb +95 -0
- data/lib/selenium/webdriver/support/relative_locator.rb +51 -0
- data/lib/selenium/webdriver/support/select.rb +3 -3
- data/lib/selenium/webdriver/support.rb +1 -0
- data/lib/selenium/webdriver/version.rb +1 -1
- data/lib/selenium/webdriver.rb +13 -13
- data/selenium-webdriver.gemspec +28 -12
- metadata +129 -69
- data/lib/selenium/webdriver/common/bridge_helper.rb +0 -82
- data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -64
- data/lib/selenium/webdriver/common/keyboard.rb +0 -70
- data/lib/selenium/webdriver/common/mouse.rb +0 -89
- data/lib/selenium/webdriver/common/touch_action_builder.rb +0 -78
- data/lib/selenium/webdriver/common/touch_screen.rb +0 -123
- data/lib/selenium/webdriver/common/w3c_action_builder.rb +0 -212
- data/lib/selenium/webdriver/edge/bridge.rb +0 -76
- data/lib/selenium/webdriver/firefox/binary.rb +0 -187
- data/lib/selenium/webdriver/firefox/extension/prefs.json +0 -69
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/firefox/launcher.rb +0 -111
- data/lib/selenium/webdriver/firefox/legacy/driver.rb +0 -83
- data/lib/selenium/webdriver/firefox/marionette/driver.rb +0 -90
- data/lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so +0 -0
- data/lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so +0 -0
- data/lib/selenium/webdriver/remote/oss/bridge.rb +0 -594
- data/lib/selenium/webdriver/remote/oss/commands.rb +0 -223
- data/lib/selenium/webdriver/remote/w3c/bridge.rb +0 -605
- data/lib/selenium/webdriver/remote/w3c/capabilities.rb +0 -310
- 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:
|
|
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:
|
|
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: '
|
|
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: '
|
|
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:
|
|
41
|
-
|
|
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: '
|
|
69
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
167
|
-
|
|
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:
|
|
176
|
-
|
|
177
|
-
|
|
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/
|
|
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/
|
|
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://
|
|
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/
|
|
320
|
-
source_code_uri: https://github.com/SeleniumHQ/selenium/tree/
|
|
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.
|
|
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
|
-
|
|
337
|
-
|
|
338
|
-
signing_key:
|
|
396
|
+
rubygems_version: 3.0.3
|
|
397
|
+
signing_key:
|
|
339
398
|
specification_version: 4
|
|
340
|
-
summary:
|
|
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
|