selenium-webdriver 3.142.1 → 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 +406 -4
- 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/features.rb +106 -0
- 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 +27 -122
- 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/{chrome/bridge.rb → edge/features.rb} +16 -22
- 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/{bridge.rb → features.rb} +23 -4
- 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 +7 -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} +6 -6
- 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 +29 -13
- metadata +125 -73
- 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,156 +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:
|
|
38
39
|
- - "~>"
|
|
39
40
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
41
|
+
version: '3.2'
|
|
41
42
|
- - ">="
|
|
42
43
|
- !ruby/object:Gem::Version
|
|
43
|
-
version:
|
|
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: '
|
|
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: '
|
|
75
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
173
|
-
|
|
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:
|
|
182
|
-
|
|
183
|
-
|
|
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/
|
|
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,54 +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
|
-
- lib/selenium/webdriver/firefox/bridge.rb
|
|
274
333
|
- lib/selenium/webdriver/firefox/driver.rb
|
|
275
334
|
- lib/selenium/webdriver/firefox/extension.rb
|
|
276
|
-
- lib/selenium/webdriver/firefox/
|
|
277
|
-
- lib/selenium/webdriver/firefox/extension/webdriver.xpi
|
|
278
|
-
- lib/selenium/webdriver/firefox/launcher.rb
|
|
279
|
-
- lib/selenium/webdriver/firefox/legacy/driver.rb
|
|
280
|
-
- lib/selenium/webdriver/firefox/marionette/bridge.rb
|
|
281
|
-
- lib/selenium/webdriver/firefox/marionette/driver.rb
|
|
282
|
-
- lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so
|
|
283
|
-
- lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so
|
|
335
|
+
- lib/selenium/webdriver/firefox/features.rb
|
|
284
336
|
- lib/selenium/webdriver/firefox/options.rb
|
|
285
337
|
- lib/selenium/webdriver/firefox/profile.rb
|
|
286
338
|
- lib/selenium/webdriver/firefox/profiles_ini.rb
|
|
287
339
|
- lib/selenium/webdriver/firefox/service.rb
|
|
288
|
-
- lib/selenium/webdriver/firefox/util.rb
|
|
289
340
|
- lib/selenium/webdriver/ie.rb
|
|
290
341
|
- lib/selenium/webdriver/ie/driver.rb
|
|
291
342
|
- lib/selenium/webdriver/ie/options.rb
|
|
@@ -299,34 +350,35 @@ files:
|
|
|
299
350
|
- lib/selenium/webdriver/remote/http/curb.rb
|
|
300
351
|
- lib/selenium/webdriver/remote/http/default.rb
|
|
301
352
|
- lib/selenium/webdriver/remote/http/persistent.rb
|
|
302
|
-
- lib/selenium/webdriver/remote/oss/bridge.rb
|
|
303
|
-
- lib/selenium/webdriver/remote/oss/commands.rb
|
|
304
353
|
- lib/selenium/webdriver/remote/response.rb
|
|
305
354
|
- lib/selenium/webdriver/remote/server_error.rb
|
|
306
|
-
- lib/selenium/webdriver/remote/w3c/bridge.rb
|
|
307
|
-
- lib/selenium/webdriver/remote/w3c/capabilities.rb
|
|
308
|
-
- lib/selenium/webdriver/remote/w3c/commands.rb
|
|
309
355
|
- lib/selenium/webdriver/safari.rb
|
|
310
|
-
- lib/selenium/webdriver/safari/bridge.rb
|
|
311
356
|
- lib/selenium/webdriver/safari/driver.rb
|
|
357
|
+
- lib/selenium/webdriver/safari/features.rb
|
|
312
358
|
- lib/selenium/webdriver/safari/options.rb
|
|
313
359
|
- lib/selenium/webdriver/safari/service.rb
|
|
314
360
|
- lib/selenium/webdriver/support.rb
|
|
315
361
|
- lib/selenium/webdriver/support/abstract_event_listener.rb
|
|
316
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
|
|
317
365
|
- lib/selenium/webdriver/support/color.rb
|
|
318
366
|
- lib/selenium/webdriver/support/escaper.rb
|
|
319
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
|
|
320
372
|
- lib/selenium/webdriver/support/select.rb
|
|
321
373
|
- lib/selenium/webdriver/version.rb
|
|
322
374
|
- selenium-webdriver.gemspec
|
|
323
|
-
homepage: https://
|
|
375
|
+
homepage: https://selenium.dev
|
|
324
376
|
licenses:
|
|
325
377
|
- Apache-2.0
|
|
326
378
|
metadata:
|
|
327
|
-
changelog_uri: https://github.com/SeleniumHQ/selenium/blob/
|
|
328
|
-
source_code_uri: https://github.com/SeleniumHQ/selenium/tree/
|
|
329
|
-
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:
|
|
330
382
|
rdoc_options: []
|
|
331
383
|
require_paths:
|
|
332
384
|
- lib
|
|
@@ -334,16 +386,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
334
386
|
requirements:
|
|
335
387
|
- - ">="
|
|
336
388
|
- !ruby/object:Gem::Version
|
|
337
|
-
version: '2.
|
|
389
|
+
version: '2.6'
|
|
338
390
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
339
391
|
requirements:
|
|
340
392
|
- - ">"
|
|
341
393
|
- !ruby/object:Gem::Version
|
|
342
394
|
version: 1.3.1
|
|
343
395
|
requirements: []
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
signing_key:
|
|
396
|
+
rubygems_version: 3.0.3
|
|
397
|
+
signing_key:
|
|
347
398
|
specification_version: 4
|
|
348
|
-
summary:
|
|
399
|
+
summary: Selenium is a browser automation tool for automated testing of webapps and
|
|
400
|
+
more
|
|
349
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
|