selenium-webdriver 4.0.0.alpha5 → 4.0.0.alpha6
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 +4 -4
- data/CHANGES +38 -0
- data/LICENSE +1 -1
- data/lib/selenium/webdriver/atoms/findElements.js +1 -1
- data/lib/selenium/webdriver/chrome/bridge.rb +4 -6
- data/lib/selenium/webdriver/chrome/driver.rb +4 -0
- data/lib/selenium/webdriver/chrome/options.rb +24 -19
- data/lib/selenium/webdriver/common.rb +1 -0
- data/lib/selenium/webdriver/common/driver.rb +55 -23
- data/lib/selenium/webdriver/common/logger.rb +1 -1
- data/lib/selenium/webdriver/common/manager.rb +5 -0
- data/lib/selenium/webdriver/common/options.rb +32 -9
- data/lib/selenium/webdriver/common/port_prober.rb +4 -6
- data/lib/selenium/webdriver/common/service.rb +12 -106
- data/lib/selenium/webdriver/common/service_manager.rb +151 -0
- data/lib/selenium/webdriver/devtools.rb +118 -0
- data/lib/selenium/webdriver/devtools/accessibility.rb +62 -0
- data/lib/selenium/webdriver/devtools/animation.rb +98 -0
- data/lib/selenium/webdriver/devtools/application_cache.rb +64 -0
- data/lib/selenium/webdriver/devtools/audits.rb +61 -0
- data/lib/selenium/webdriver/devtools/background_service.rb +67 -0
- data/lib/selenium/webdriver/devtools/browser.rb +123 -0
- data/lib/selenium/webdriver/devtools/cache_storage.rb +73 -0
- data/lib/selenium/webdriver/devtools/cast.rb +70 -0
- data/lib/selenium/webdriver/devtools/console.rb +57 -0
- data/lib/selenium/webdriver/devtools/css.rb +165 -0
- data/lib/selenium/webdriver/devtools/database.rb +64 -0
- data/lib/selenium/webdriver/devtools/debugger.rb +229 -0
- data/lib/selenium/webdriver/devtools/device_orientation.rb +53 -0
- data/lib/selenium/webdriver/devtools/dom.rb +320 -0
- data/lib/selenium/webdriver/devtools/domdebugger.rb +93 -0
- data/lib/selenium/webdriver/devtools/domsnapshot.rb +65 -0
- data/lib/selenium/webdriver/devtools/domstorage.rb +79 -0
- data/lib/selenium/webdriver/devtools/emulation.rb +180 -0
- data/lib/selenium/webdriver/devtools/fetch.rb +97 -0
- data/lib/selenium/webdriver/devtools/headless_experimental.rb +61 -0
- data/lib/selenium/webdriver/devtools/heap_profiler.rb +107 -0
- data/lib/selenium/webdriver/devtools/indexed_db.rb +100 -0
- data/lib/selenium/webdriver/devtools/input.rb +140 -0
- data/lib/selenium/webdriver/devtools/inspector.rb +55 -0
- data/lib/selenium/webdriver/devtools/io.rb +59 -0
- data/lib/selenium/webdriver/devtools/layer_tree.rb +95 -0
- data/lib/selenium/webdriver/devtools/log.rb +66 -0
- data/lib/selenium/webdriver/devtools/media.rb +57 -0
- data/lib/selenium/webdriver/devtools/memory.rb +86 -0
- data/lib/selenium/webdriver/devtools/network.rb +228 -0
- data/lib/selenium/webdriver/devtools/overlay.rb +157 -0
- data/lib/selenium/webdriver/devtools/page.rb +374 -0
- data/lib/selenium/webdriver/devtools/performance.rb +63 -0
- data/lib/selenium/webdriver/devtools/profiler.rb +111 -0
- data/lib/selenium/webdriver/devtools/runtime.rb +193 -0
- data/lib/selenium/webdriver/devtools/schema.rb +46 -0
- data/lib/selenium/webdriver/devtools/security.rb +71 -0
- data/lib/selenium/webdriver/devtools/service_worker.rb +116 -0
- data/lib/selenium/webdriver/devtools/storage.rb +95 -0
- data/lib/selenium/webdriver/devtools/system_info.rb +50 -0
- data/lib/selenium/webdriver/devtools/target.rb +141 -0
- data/lib/selenium/webdriver/devtools/tethering.rb +55 -0
- data/lib/selenium/webdriver/devtools/tracing.rb +76 -0
- data/lib/selenium/webdriver/devtools/web_audio.rb +70 -0
- data/lib/selenium/webdriver/devtools/web_authn.rb +94 -0
- data/lib/selenium/webdriver/edge_chrome/bridge.rb +9 -2
- data/lib/selenium/webdriver/edge_chrome/driver.rb +4 -0
- data/lib/selenium/webdriver/edge_chrome/options.rb +2 -0
- data/lib/selenium/webdriver/edge_html/options.rb +2 -9
- data/lib/selenium/webdriver/firefox/bridge.rb +1 -1
- data/lib/selenium/webdriver/firefox/driver.rb +4 -0
- data/lib/selenium/webdriver/firefox/options.rb +5 -10
- data/lib/selenium/webdriver/ie/options.rb +7 -10
- data/lib/selenium/webdriver/remote/bridge.rb +3 -13
- data/lib/selenium/webdriver/remote/capabilities.rb +11 -6
- data/lib/selenium/webdriver/safari/bridge.rb +1 -1
- data/lib/selenium/webdriver/safari/driver.rb +4 -0
- data/lib/selenium/webdriver/safari/options.rb +1 -8
- data/lib/selenium/webdriver/support/cdp_client_generator.rb +77 -0
- data/lib/selenium/webdriver/support/color.rb +2 -2
- data/lib/selenium/webdriver/version.rb +1 -1
- data/selenium-webdriver.gemspec +2 -2
- metadata +53 -5
@@ -146,12 +146,7 @@ module Selenium
|
|
146
146
|
caps.accept_insecure_certs = data.delete('acceptInsecureCerts') if data.key?('acceptInsecureCerts')
|
147
147
|
caps.page_load_strategy = data.delete('pageLoadStrategy') if data.key?('pageLoadStrategy')
|
148
148
|
|
149
|
-
|
150
|
-
timeouts = data.delete('timeouts')
|
151
|
-
caps.implicit_timeout = timeouts['implicit'] if timeouts
|
152
|
-
caps.page_load_timeout = timeouts['pageLoad'] if timeouts
|
153
|
-
caps.script_timeout = timeouts['script'] if timeouts
|
154
|
-
end
|
149
|
+
process_timeouts(caps, data.delete('timeouts'))
|
155
150
|
|
156
151
|
if data.key?('proxy')
|
157
152
|
proxy = data.delete('proxy')
|
@@ -166,6 +161,16 @@ module Selenium
|
|
166
161
|
|
167
162
|
caps
|
168
163
|
end
|
164
|
+
|
165
|
+
private
|
166
|
+
|
167
|
+
def process_timeouts(caps, timeouts)
|
168
|
+
return if timeouts.nil?
|
169
|
+
|
170
|
+
caps.implicit_timeout = timeouts['implicit']
|
171
|
+
caps.page_load_timeout = timeouts['pageLoad']
|
172
|
+
caps.script_timeout = timeouts['script']
|
173
|
+
end
|
169
174
|
end
|
170
175
|
|
171
176
|
#
|
@@ -20,7 +20,7 @@
|
|
20
20
|
module Selenium
|
21
21
|
module WebDriver
|
22
22
|
module Safari
|
23
|
-
|
23
|
+
class Bridge < WebDriver::Remote::Bridge
|
24
24
|
|
25
25
|
# https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/WebDriverEndpointDoc/Commands/Commands.html
|
26
26
|
COMMANDS = {
|
@@ -26,6 +26,7 @@ module Selenium
|
|
26
26
|
# @see https://developer.apple.com/documentation/webkit/about_webdriver_for_safari
|
27
27
|
CAPABILITIES = {automatic_inspection: 'safari:automaticInspection',
|
28
28
|
automatic_profiling: 'safari:automaticProfiling'}.freeze
|
29
|
+
BROWSER = 'safari'
|
29
30
|
|
30
31
|
CAPABILITIES.each_key do |key|
|
31
32
|
define_method key do
|
@@ -52,14 +53,6 @@ module Selenium
|
|
52
53
|
def initialize(**opts)
|
53
54
|
super
|
54
55
|
end
|
55
|
-
|
56
|
-
#
|
57
|
-
# @api private
|
58
|
-
#
|
59
|
-
|
60
|
-
def as_json(*)
|
61
|
-
generate_as_json(super)
|
62
|
-
end
|
63
56
|
end # Options
|
64
57
|
end # Safari
|
65
58
|
end # WebDriver
|
@@ -0,0 +1,77 @@
|
|
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
|
+
require 'erb'
|
21
|
+
require 'json'
|
22
|
+
|
23
|
+
module Selenium
|
24
|
+
module WebDriver
|
25
|
+
module Support
|
26
|
+
class CDPClientGenerator
|
27
|
+
DEVTOOLS_DIR = File.expand_path('../devtools', __dir__)
|
28
|
+
BROWSER_PROTOCOL_PATH = File.expand_path('cdp/browser_protocol.json', __dir__)
|
29
|
+
JS_PROTOCOL_PATH = File.expand_path('cdp/js_protocol.json', __dir__)
|
30
|
+
TEMPLATE_PATH = File.expand_path('cdp/domain.rb.erb', __dir__)
|
31
|
+
|
32
|
+
RESERVED_KEYWORDS = %w[end].freeze
|
33
|
+
|
34
|
+
def initialize
|
35
|
+
@browser_protocol = JSON.parse(File.read(BROWSER_PROTOCOL_PATH), symbolize_names: true)
|
36
|
+
@js_protocol = JSON.parse(File.read(JS_PROTOCOL_PATH), symbolize_names: true)
|
37
|
+
@template = ERB.new(File.read(TEMPLATE_PATH))
|
38
|
+
end
|
39
|
+
|
40
|
+
def call
|
41
|
+
@browser_protocol[:domains].each(&method(:process_domain))
|
42
|
+
@js_protocol[:domains].each(&method(:process_domain))
|
43
|
+
end
|
44
|
+
|
45
|
+
def process_domain(domain)
|
46
|
+
result = @template.result_with_hash(domain: domain, h: self)
|
47
|
+
filename = File.join(DEVTOOLS_DIR, "#{snake_case(domain[:domain])}.rb")
|
48
|
+
File.write(filename, remove_empty_lines(result))
|
49
|
+
end
|
50
|
+
|
51
|
+
def snake_case(string)
|
52
|
+
name = string.gsub(/([a-z])([A-Z])/, '\1_\2').downcase
|
53
|
+
# Certain CDP parameters conflict with Ruby keywords
|
54
|
+
# so we prefix the name with underscore.
|
55
|
+
name = "_#{name}" if RESERVED_KEYWORDS.include?(name)
|
56
|
+
|
57
|
+
name
|
58
|
+
end
|
59
|
+
|
60
|
+
def kwargs(parameters)
|
61
|
+
parameters = parameters.map do |parameter|
|
62
|
+
if parameter[:optional]
|
63
|
+
"#{snake_case(parameter[:name])}: nil"
|
64
|
+
else
|
65
|
+
"#{snake_case(parameter[:name])}:"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
parameters.join(', ')
|
69
|
+
end
|
70
|
+
|
71
|
+
def remove_empty_lines(string)
|
72
|
+
string.split("\n").reject { |l| l =~ /^\s+$/ }.join("\n")
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -72,7 +72,7 @@ module Selenium
|
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
|
-
def self.from_hsl(h, s, l, a) # rubocop:disable Naming/
|
75
|
+
def self.from_hsl(h, s, l, a) # rubocop:disable Naming/MethodParameterName
|
76
76
|
h = Float(h) / 360
|
77
77
|
s = Float(s) / 100
|
78
78
|
l = Float(l) / 100
|
@@ -138,7 +138,7 @@ module Selenium
|
|
138
138
|
end
|
139
139
|
|
140
140
|
def hex
|
141
|
-
format '
|
141
|
+
format '#%<red>02x%<green>02x%<blue>02x', red: red, green: green, blue: blue
|
142
142
|
end
|
143
143
|
end # Color
|
144
144
|
end # Support
|
data/selenium-webdriver.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
}
|
27
27
|
|
28
28
|
s.required_rubygems_version = Gem::Requirement.new('> 1.3.1') if s.respond_to? :required_rubygems_version=
|
29
|
-
s.required_ruby_version = Gem::Requirement.new('>= 2.
|
29
|
+
s.required_ruby_version = Gem::Requirement.new('>= 2.5')
|
30
30
|
|
31
31
|
s.files = Dir[root + '/**/*'].reject { |e| e =~ /ruby\.iml|build\.desc/ }.map { |e| e.sub(root + '/', '') }
|
32
32
|
s.require_paths = ['lib']
|
@@ -40,7 +40,7 @@ Gem::Specification.new do |s|
|
|
40
40
|
s.add_development_dependency 'rack', ['~> 2.0']
|
41
41
|
s.add_development_dependency 'rake'
|
42
42
|
s.add_development_dependency 'rspec', ['~> 3.0']
|
43
|
-
s.add_development_dependency 'rubocop', ['~> 0.
|
43
|
+
s.add_development_dependency 'rubocop', ['~> 0.84.0']
|
44
44
|
s.add_development_dependency 'rubocop-performance'
|
45
45
|
s.add_development_dependency 'rubocop-rspec'
|
46
46
|
s.add_development_dependency 'webmock', ['~> 3.5']
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: selenium-webdriver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.0.
|
4
|
+
version: 4.0.0.alpha6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Rodionov
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2020-
|
13
|
+
date: 2020-05-28 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
@@ -121,7 +121,7 @@ dependencies:
|
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.
|
124
|
+
version: 0.84.0
|
125
125
|
name: rubocop
|
126
126
|
prerelease: false
|
127
127
|
type: :development
|
@@ -129,7 +129,7 @@ dependencies:
|
|
129
129
|
requirements:
|
130
130
|
- - "~>"
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: 0.
|
132
|
+
version: 0.84.0
|
133
133
|
- !ruby/object:Gem::Dependency
|
134
134
|
requirement: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
@@ -259,6 +259,7 @@ files:
|
|
259
259
|
- lib/selenium/webdriver/common/proxy.rb
|
260
260
|
- lib/selenium/webdriver/common/search_context.rb
|
261
261
|
- lib/selenium/webdriver/common/service.rb
|
262
|
+
- lib/selenium/webdriver/common/service_manager.rb
|
262
263
|
- lib/selenium/webdriver/common/socket_lock.rb
|
263
264
|
- lib/selenium/webdriver/common/socket_poller.rb
|
264
265
|
- lib/selenium/webdriver/common/target_locator.rb
|
@@ -266,6 +267,52 @@ files:
|
|
266
267
|
- lib/selenium/webdriver/common/wait.rb
|
267
268
|
- lib/selenium/webdriver/common/window.rb
|
268
269
|
- lib/selenium/webdriver/common/zipper.rb
|
270
|
+
- lib/selenium/webdriver/devtools.rb
|
271
|
+
- lib/selenium/webdriver/devtools/accessibility.rb
|
272
|
+
- lib/selenium/webdriver/devtools/animation.rb
|
273
|
+
- lib/selenium/webdriver/devtools/application_cache.rb
|
274
|
+
- lib/selenium/webdriver/devtools/audits.rb
|
275
|
+
- lib/selenium/webdriver/devtools/background_service.rb
|
276
|
+
- lib/selenium/webdriver/devtools/browser.rb
|
277
|
+
- lib/selenium/webdriver/devtools/cache_storage.rb
|
278
|
+
- lib/selenium/webdriver/devtools/cast.rb
|
279
|
+
- lib/selenium/webdriver/devtools/console.rb
|
280
|
+
- lib/selenium/webdriver/devtools/css.rb
|
281
|
+
- lib/selenium/webdriver/devtools/database.rb
|
282
|
+
- lib/selenium/webdriver/devtools/debugger.rb
|
283
|
+
- lib/selenium/webdriver/devtools/device_orientation.rb
|
284
|
+
- lib/selenium/webdriver/devtools/dom.rb
|
285
|
+
- lib/selenium/webdriver/devtools/domdebugger.rb
|
286
|
+
- lib/selenium/webdriver/devtools/domsnapshot.rb
|
287
|
+
- lib/selenium/webdriver/devtools/domstorage.rb
|
288
|
+
- lib/selenium/webdriver/devtools/emulation.rb
|
289
|
+
- lib/selenium/webdriver/devtools/fetch.rb
|
290
|
+
- lib/selenium/webdriver/devtools/headless_experimental.rb
|
291
|
+
- lib/selenium/webdriver/devtools/heap_profiler.rb
|
292
|
+
- lib/selenium/webdriver/devtools/indexed_db.rb
|
293
|
+
- lib/selenium/webdriver/devtools/input.rb
|
294
|
+
- lib/selenium/webdriver/devtools/inspector.rb
|
295
|
+
- lib/selenium/webdriver/devtools/io.rb
|
296
|
+
- lib/selenium/webdriver/devtools/layer_tree.rb
|
297
|
+
- lib/selenium/webdriver/devtools/log.rb
|
298
|
+
- lib/selenium/webdriver/devtools/media.rb
|
299
|
+
- lib/selenium/webdriver/devtools/memory.rb
|
300
|
+
- lib/selenium/webdriver/devtools/network.rb
|
301
|
+
- lib/selenium/webdriver/devtools/overlay.rb
|
302
|
+
- lib/selenium/webdriver/devtools/page.rb
|
303
|
+
- lib/selenium/webdriver/devtools/performance.rb
|
304
|
+
- lib/selenium/webdriver/devtools/profiler.rb
|
305
|
+
- lib/selenium/webdriver/devtools/runtime.rb
|
306
|
+
- lib/selenium/webdriver/devtools/schema.rb
|
307
|
+
- lib/selenium/webdriver/devtools/security.rb
|
308
|
+
- lib/selenium/webdriver/devtools/service_worker.rb
|
309
|
+
- lib/selenium/webdriver/devtools/storage.rb
|
310
|
+
- lib/selenium/webdriver/devtools/system_info.rb
|
311
|
+
- lib/selenium/webdriver/devtools/target.rb
|
312
|
+
- lib/selenium/webdriver/devtools/tethering.rb
|
313
|
+
- lib/selenium/webdriver/devtools/tracing.rb
|
314
|
+
- lib/selenium/webdriver/devtools/web_audio.rb
|
315
|
+
- lib/selenium/webdriver/devtools/web_authn.rb
|
269
316
|
- lib/selenium/webdriver/edge.rb
|
270
317
|
- lib/selenium/webdriver/edge_chrome/bridge.rb
|
271
318
|
- lib/selenium/webdriver/edge_chrome/driver.rb
|
@@ -306,6 +353,7 @@ files:
|
|
306
353
|
- lib/selenium/webdriver/support.rb
|
307
354
|
- lib/selenium/webdriver/support/abstract_event_listener.rb
|
308
355
|
- lib/selenium/webdriver/support/block_event_listener.rb
|
356
|
+
- lib/selenium/webdriver/support/cdp_client_generator.rb
|
309
357
|
- lib/selenium/webdriver/support/color.rb
|
310
358
|
- lib/selenium/webdriver/support/escaper.rb
|
311
359
|
- lib/selenium/webdriver/support/event_firing_bridge.rb
|
@@ -327,7 +375,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
327
375
|
requirements:
|
328
376
|
- - ">="
|
329
377
|
- !ruby/object:Gem::Version
|
330
|
-
version: '2.
|
378
|
+
version: '2.5'
|
331
379
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
332
380
|
requirements:
|
333
381
|
- - ">"
|