selenium-webdriver 3.142.7 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGES +350 -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 -83
- data/lib/selenium/webdriver/chrome/{bridge.rb → features.rb} +50 -12
- data/lib/selenium/webdriver/chrome/options.rb +129 -58
- data/lib/selenium/webdriver/chrome/profile.rb +6 -3
- 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 +154 -23
- 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 +1 -9
- data/lib/selenium/webdriver/common.rb +23 -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 +182 -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 +70 -49
- 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 +13 -44
- data/lib/selenium/webdriver/ie/service.rb +13 -15
- data/lib/selenium/webdriver/ie.rb +8 -7
- data/lib/selenium/webdriver/remote/bridge.rb +558 -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 -13
- 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 +12 -12
- data/selenium-webdriver.gemspec +28 -12
- metadata +128 -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.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alex Rodionov
|
|
8
8
|
- Titus Fortner
|
|
9
9
|
- Thomas Walpole
|
|
10
|
-
autorequire:
|
|
10
|
+
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2021-10-20 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
|
+
name: childprocess
|
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
|
17
18
|
requirements:
|
|
18
19
|
- - ">="
|
|
@@ -20,10 +21,9 @@ dependencies:
|
|
|
20
21
|
version: '0.5'
|
|
21
22
|
- - "<"
|
|
22
23
|
- !ruby/object:Gem::Version
|
|
23
|
-
version: '
|
|
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,13 +293,11 @@ files:
|
|
|
232
293
|
- lib/selenium/webdriver/common/interactions/none_input.rb
|
|
233
294
|
- lib/selenium/webdriver/common/interactions/pointer_actions.rb
|
|
234
295
|
- lib/selenium/webdriver/common/interactions/pointer_input.rb
|
|
235
|
-
- lib/selenium/webdriver/common/keyboard.rb
|
|
236
296
|
- lib/selenium/webdriver/common/keys.rb
|
|
237
297
|
- lib/selenium/webdriver/common/log_entry.rb
|
|
238
298
|
- lib/selenium/webdriver/common/logger.rb
|
|
239
299
|
- lib/selenium/webdriver/common/logs.rb
|
|
240
300
|
- lib/selenium/webdriver/common/manager.rb
|
|
241
|
-
- lib/selenium/webdriver/common/mouse.rb
|
|
242
301
|
- lib/selenium/webdriver/common/navigation.rb
|
|
243
302
|
- lib/selenium/webdriver/common/options.rb
|
|
244
303
|
- lib/selenium/webdriver/common/platform.rb
|
|
@@ -247,39 +306,37 @@ files:
|
|
|
247
306
|
- lib/selenium/webdriver/common/proxy.rb
|
|
248
307
|
- lib/selenium/webdriver/common/search_context.rb
|
|
249
308
|
- lib/selenium/webdriver/common/service.rb
|
|
309
|
+
- lib/selenium/webdriver/common/service_manager.rb
|
|
310
|
+
- lib/selenium/webdriver/common/shadow_root.rb
|
|
250
311
|
- lib/selenium/webdriver/common/socket_lock.rb
|
|
251
312
|
- lib/selenium/webdriver/common/socket_poller.rb
|
|
313
|
+
- lib/selenium/webdriver/common/takes_screenshot.rb
|
|
252
314
|
- lib/selenium/webdriver/common/target_locator.rb
|
|
253
315
|
- lib/selenium/webdriver/common/timeouts.rb
|
|
254
|
-
- lib/selenium/webdriver/common/touch_action_builder.rb
|
|
255
|
-
- lib/selenium/webdriver/common/touch_screen.rb
|
|
256
|
-
- lib/selenium/webdriver/common/w3c_action_builder.rb
|
|
257
|
-
- lib/selenium/webdriver/common/w3c_manager.rb
|
|
258
316
|
- lib/selenium/webdriver/common/wait.rb
|
|
259
317
|
- lib/selenium/webdriver/common/window.rb
|
|
260
318
|
- lib/selenium/webdriver/common/zipper.rb
|
|
319
|
+
- lib/selenium/webdriver/devtools.rb
|
|
320
|
+
- lib/selenium/webdriver/devtools/console_event.rb
|
|
321
|
+
- lib/selenium/webdriver/devtools/exception_event.rb
|
|
322
|
+
- lib/selenium/webdriver/devtools/mutation_event.rb
|
|
323
|
+
- lib/selenium/webdriver/devtools/pinned_script.rb
|
|
324
|
+
- lib/selenium/webdriver/devtools/request.rb
|
|
325
|
+
- lib/selenium/webdriver/devtools/response.rb
|
|
261
326
|
- lib/selenium/webdriver/edge.rb
|
|
262
|
-
- lib/selenium/webdriver/edge/bridge.rb
|
|
263
327
|
- lib/selenium/webdriver/edge/driver.rb
|
|
328
|
+
- lib/selenium/webdriver/edge/features.rb
|
|
264
329
|
- lib/selenium/webdriver/edge/options.rb
|
|
330
|
+
- lib/selenium/webdriver/edge/profile.rb
|
|
265
331
|
- lib/selenium/webdriver/edge/service.rb
|
|
266
332
|
- lib/selenium/webdriver/firefox.rb
|
|
267
|
-
- lib/selenium/webdriver/firefox/binary.rb
|
|
268
333
|
- lib/selenium/webdriver/firefox/driver.rb
|
|
269
334
|
- lib/selenium/webdriver/firefox/extension.rb
|
|
270
|
-
- lib/selenium/webdriver/firefox/
|
|
271
|
-
- lib/selenium/webdriver/firefox/extension/webdriver.xpi
|
|
272
|
-
- lib/selenium/webdriver/firefox/launcher.rb
|
|
273
|
-
- lib/selenium/webdriver/firefox/legacy/driver.rb
|
|
274
|
-
- lib/selenium/webdriver/firefox/marionette/bridge.rb
|
|
275
|
-
- lib/selenium/webdriver/firefox/marionette/driver.rb
|
|
276
|
-
- lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so
|
|
277
|
-
- lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so
|
|
335
|
+
- lib/selenium/webdriver/firefox/features.rb
|
|
278
336
|
- lib/selenium/webdriver/firefox/options.rb
|
|
279
337
|
- lib/selenium/webdriver/firefox/profile.rb
|
|
280
338
|
- lib/selenium/webdriver/firefox/profiles_ini.rb
|
|
281
339
|
- lib/selenium/webdriver/firefox/service.rb
|
|
282
|
-
- lib/selenium/webdriver/firefox/util.rb
|
|
283
340
|
- lib/selenium/webdriver/ie.rb
|
|
284
341
|
- lib/selenium/webdriver/ie/driver.rb
|
|
285
342
|
- lib/selenium/webdriver/ie/options.rb
|
|
@@ -287,39 +344,41 @@ files:
|
|
|
287
344
|
- lib/selenium/webdriver/remote.rb
|
|
288
345
|
- lib/selenium/webdriver/remote/bridge.rb
|
|
289
346
|
- lib/selenium/webdriver/remote/capabilities.rb
|
|
347
|
+
- lib/selenium/webdriver/remote/commands.rb
|
|
290
348
|
- lib/selenium/webdriver/remote/driver.rb
|
|
291
349
|
- lib/selenium/webdriver/remote/http/common.rb
|
|
292
350
|
- lib/selenium/webdriver/remote/http/curb.rb
|
|
293
351
|
- lib/selenium/webdriver/remote/http/default.rb
|
|
294
352
|
- lib/selenium/webdriver/remote/http/persistent.rb
|
|
295
|
-
- lib/selenium/webdriver/remote/oss/bridge.rb
|
|
296
|
-
- lib/selenium/webdriver/remote/oss/commands.rb
|
|
297
353
|
- lib/selenium/webdriver/remote/response.rb
|
|
298
354
|
- lib/selenium/webdriver/remote/server_error.rb
|
|
299
|
-
- lib/selenium/webdriver/remote/w3c/bridge.rb
|
|
300
|
-
- lib/selenium/webdriver/remote/w3c/capabilities.rb
|
|
301
|
-
- lib/selenium/webdriver/remote/w3c/commands.rb
|
|
302
355
|
- lib/selenium/webdriver/safari.rb
|
|
303
|
-
- lib/selenium/webdriver/safari/bridge.rb
|
|
304
356
|
- lib/selenium/webdriver/safari/driver.rb
|
|
357
|
+
- lib/selenium/webdriver/safari/features.rb
|
|
305
358
|
- lib/selenium/webdriver/safari/options.rb
|
|
306
359
|
- lib/selenium/webdriver/safari/service.rb
|
|
307
360
|
- lib/selenium/webdriver/support.rb
|
|
308
361
|
- lib/selenium/webdriver/support/abstract_event_listener.rb
|
|
309
362
|
- lib/selenium/webdriver/support/block_event_listener.rb
|
|
363
|
+
- lib/selenium/webdriver/support/cdp/domain.rb.erb
|
|
364
|
+
- lib/selenium/webdriver/support/cdp_client_generator.rb
|
|
310
365
|
- lib/selenium/webdriver/support/color.rb
|
|
311
366
|
- lib/selenium/webdriver/support/escaper.rb
|
|
312
367
|
- lib/selenium/webdriver/support/event_firing_bridge.rb
|
|
368
|
+
- lib/selenium/webdriver/support/guards.rb
|
|
369
|
+
- lib/selenium/webdriver/support/guards/guard.rb
|
|
370
|
+
- lib/selenium/webdriver/support/guards/guard_condition.rb
|
|
371
|
+
- lib/selenium/webdriver/support/relative_locator.rb
|
|
313
372
|
- lib/selenium/webdriver/support/select.rb
|
|
314
373
|
- lib/selenium/webdriver/version.rb
|
|
315
374
|
- selenium-webdriver.gemspec
|
|
316
|
-
homepage: https://
|
|
375
|
+
homepage: https://selenium.dev
|
|
317
376
|
licenses:
|
|
318
377
|
- Apache-2.0
|
|
319
378
|
metadata:
|
|
320
|
-
changelog_uri: https://github.com/SeleniumHQ/selenium/blob/
|
|
321
|
-
source_code_uri: https://github.com/SeleniumHQ/selenium/tree/
|
|
322
|
-
post_install_message:
|
|
379
|
+
changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
|
|
380
|
+
source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
|
|
381
|
+
post_install_message:
|
|
323
382
|
rdoc_options: []
|
|
324
383
|
require_paths:
|
|
325
384
|
- lib
|
|
@@ -327,16 +386,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
327
386
|
requirements:
|
|
328
387
|
- - ">="
|
|
329
388
|
- !ruby/object:Gem::Version
|
|
330
|
-
version: '2.
|
|
389
|
+
version: '2.6'
|
|
331
390
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
332
391
|
requirements:
|
|
333
392
|
- - ">"
|
|
334
393
|
- !ruby/object:Gem::Version
|
|
335
394
|
version: 1.3.1
|
|
336
395
|
requirements: []
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
signing_key:
|
|
396
|
+
rubygems_version: 3.0.3
|
|
397
|
+
signing_key:
|
|
340
398
|
specification_version: 4
|
|
341
|
-
summary:
|
|
399
|
+
summary: Selenium is a browser automation tool for automated testing of webapps and
|
|
400
|
+
more
|
|
342
401
|
test_files: []
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Licensed to the Software Freedom Conservancy (SFC) under one
|
|
4
|
-
# or more contributor license agreements. See the NOTICE file
|
|
5
|
-
# distributed with this work for additional information
|
|
6
|
-
# regarding copyright ownership. The SFC licenses this file
|
|
7
|
-
# to you under the Apache License, Version 2.0 (the
|
|
8
|
-
# "License"); you may not use this file except in compliance
|
|
9
|
-
# with the License. You may obtain a copy of the License at
|
|
10
|
-
#
|
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
13
|
-
# Unless required by applicable law or agreed to in writing,
|
|
14
|
-
# software distributed under the License is distributed on an
|
|
15
|
-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
16
|
-
# KIND, either express or implied. See the License for the
|
|
17
|
-
# specific language governing permissions and limitations
|
|
18
|
-
# under the License.
|
|
19
|
-
|
|
20
|
-
module Selenium
|
|
21
|
-
module WebDriver
|
|
22
|
-
#
|
|
23
|
-
# Shared across bridges
|
|
24
|
-
#
|
|
25
|
-
# @api private
|
|
26
|
-
#
|
|
27
|
-
|
|
28
|
-
module BridgeHelper
|
|
29
|
-
def unwrap_script_result(arg)
|
|
30
|
-
case arg
|
|
31
|
-
when Array
|
|
32
|
-
arg.map { |e| unwrap_script_result(e) }
|
|
33
|
-
when Hash
|
|
34
|
-
element_id = element_id_from(arg)
|
|
35
|
-
return Element.new(self, element_id) if element_id
|
|
36
|
-
|
|
37
|
-
arg.each { |k, v| arg[k] = unwrap_script_result(v) }
|
|
38
|
-
else
|
|
39
|
-
arg
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def element_id_from(id)
|
|
44
|
-
id['ELEMENT'] || id['element-6066-11e4-a52e-4f735466cecf']
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def parse_cookie_string(str)
|
|
48
|
-
result = {
|
|
49
|
-
'name' => '',
|
|
50
|
-
'value' => '',
|
|
51
|
-
'domain' => '',
|
|
52
|
-
'path' => '',
|
|
53
|
-
'expires' => '',
|
|
54
|
-
'secure' => false
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
str.split(';').each do |attribute|
|
|
58
|
-
if attribute.include? '='
|
|
59
|
-
key, value = attribute.strip.split('=', 2)
|
|
60
|
-
if result['name'].empty?
|
|
61
|
-
result['name'] = key
|
|
62
|
-
result['value'] = value
|
|
63
|
-
elsif key == 'domain' && value.strip =~ /^\.(.+)/
|
|
64
|
-
result['domain'] = Regexp.last_match(1)
|
|
65
|
-
elsif key && value
|
|
66
|
-
result[key] = value
|
|
67
|
-
end
|
|
68
|
-
elsif attribute == 'secure'
|
|
69
|
-
result['secure'] = true
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
unless [nil, '', '0'].include?(result['expires'])
|
|
73
|
-
# firefox stores expiry as number of seconds
|
|
74
|
-
result['expires'] = Time.at(result['expires'].to_i)
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
result
|
|
79
|
-
end
|
|
80
|
-
end # BridgeHelper
|
|
81
|
-
end # WebDriver
|
|
82
|
-
end # Selenium
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Licensed to the Software Freedom Conservancy (SFC) under one
|
|
4
|
-
# or more contributor license agreements. See the NOTICE file
|
|
5
|
-
# distributed with this work for additional information
|
|
6
|
-
# regarding copyright ownership. The SFC licenses this file
|
|
7
|
-
# to you under the Apache License, Version 2.0 (the
|
|
8
|
-
# "License"); you may not use this file except in compliance
|
|
9
|
-
# with the License. You may obtain a copy of the License at
|
|
10
|
-
#
|
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
13
|
-
# Unless required by applicable law or agreed to in writing,
|
|
14
|
-
# software distributed under the License is distributed on an
|
|
15
|
-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
16
|
-
# KIND, either express or implied. See the License for the
|
|
17
|
-
# specific language governing permissions and limitations
|
|
18
|
-
# under the License.
|
|
19
|
-
|
|
20
|
-
module Selenium
|
|
21
|
-
module WebDriver
|
|
22
|
-
#
|
|
23
|
-
# @api private
|
|
24
|
-
#
|
|
25
|
-
|
|
26
|
-
module DriverExtensions
|
|
27
|
-
module TakesScreenshot
|
|
28
|
-
#
|
|
29
|
-
# Save a PNG screenshot to the given path
|
|
30
|
-
#
|
|
31
|
-
# @api public
|
|
32
|
-
#
|
|
33
|
-
|
|
34
|
-
def save_screenshot(png_path)
|
|
35
|
-
extension = File.extname(png_path).downcase
|
|
36
|
-
if extension != '.png'
|
|
37
|
-
WebDriver.logger.warn "name used for saved screenshot does not match file type. "\
|
|
38
|
-
"It should end with .png extension"
|
|
39
|
-
end
|
|
40
|
-
File.open(png_path, 'wb') { |f| f << screenshot_as(:png) }
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
#
|
|
44
|
-
# Return a PNG screenshot in the given format as a string
|
|
45
|
-
#
|
|
46
|
-
# @param [:base64, :png] format
|
|
47
|
-
# @return String screenshot
|
|
48
|
-
#
|
|
49
|
-
# @api public
|
|
50
|
-
|
|
51
|
-
def screenshot_as(format)
|
|
52
|
-
case format
|
|
53
|
-
when :base64
|
|
54
|
-
bridge.screenshot
|
|
55
|
-
when :png
|
|
56
|
-
bridge.screenshot.unpack('m')[0]
|
|
57
|
-
else
|
|
58
|
-
raise Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end # TakesScreenshot
|
|
62
|
-
end # DriverExtensions
|
|
63
|
-
end # WebDriver
|
|
64
|
-
end # Selenium
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Licensed to the Software Freedom Conservancy (SFC) under one
|
|
4
|
-
# or more contributor license agreements. See the NOTICE file
|
|
5
|
-
# distributed with this work for additional information
|
|
6
|
-
# regarding copyright ownership. The SFC licenses this file
|
|
7
|
-
# to you under the Apache License, Version 2.0 (the
|
|
8
|
-
# "License"); you may not use this file except in compliance
|
|
9
|
-
# with the License. You may obtain a copy of the License at
|
|
10
|
-
#
|
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
13
|
-
# Unless required by applicable law or agreed to in writing,
|
|
14
|
-
# software distributed under the License is distributed on an
|
|
15
|
-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
16
|
-
# KIND, either express or implied. See the License for the
|
|
17
|
-
# specific language governing permissions and limitations
|
|
18
|
-
# under the License.
|
|
19
|
-
|
|
20
|
-
module Selenium
|
|
21
|
-
module WebDriver
|
|
22
|
-
#
|
|
23
|
-
# @api private
|
|
24
|
-
# @see ActionBuilder
|
|
25
|
-
|
|
26
|
-
class Keyboard
|
|
27
|
-
def initialize(bridge)
|
|
28
|
-
@bridge = bridge
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def send_keys(*keys)
|
|
32
|
-
@bridge.send_keys_to_active_element Keys.encode(keys)
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
#
|
|
36
|
-
# Press a modifier key
|
|
37
|
-
#
|
|
38
|
-
# @see Selenium::WebDriver::Keys
|
|
39
|
-
#
|
|
40
|
-
|
|
41
|
-
def press(key)
|
|
42
|
-
assert_modifier key
|
|
43
|
-
|
|
44
|
-
@bridge.send_keys_to_active_element Keys.encode([key])
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
#
|
|
48
|
-
# Release a modifier key
|
|
49
|
-
#
|
|
50
|
-
# @see Selenium::WebDriver::Keys
|
|
51
|
-
#
|
|
52
|
-
|
|
53
|
-
def release(key)
|
|
54
|
-
assert_modifier key
|
|
55
|
-
|
|
56
|
-
@bridge.send_keys_to_active_element Keys.encode([key])
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
private
|
|
60
|
-
|
|
61
|
-
MODIFIERS = %i[control shift alt command meta].freeze
|
|
62
|
-
|
|
63
|
-
def assert_modifier(key)
|
|
64
|
-
return if MODIFIERS.include? key
|
|
65
|
-
|
|
66
|
-
raise ArgumentError, "#{key.inspect} is not a modifier key, expected one of #{MODIFIERS.inspect}"
|
|
67
|
-
end
|
|
68
|
-
end # Keyboard
|
|
69
|
-
end # WebDriver
|
|
70
|
-
end # Selenium
|