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