selenium-webdriver 4.0.0.alpha2 → 4.0.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 +338 -4
- data/Gemfile +3 -1
- data/LICENSE +1 -1
- data/NOTICE +2 -0
- data/README.md +4 -5
- data/lib/selenium/server.rb +21 -29
- 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 -56
- data/lib/selenium/webdriver/chrome/features.rb +106 -0
- data/lib/selenium/webdriver/chrome/options.rb +127 -52
- data/lib/selenium/webdriver/chrome/profile.rb +8 -5
- data/lib/selenium/webdriver/chrome/service.rb +4 -6
- data/lib/selenium/webdriver/chrome.rb +10 -9
- data/lib/selenium/webdriver/common/driver.rb +110 -19
- 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_cdp.rb +38 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +45 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +43 -0
- 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 +79 -16
- data/lib/selenium/webdriver/common/error.rb +12 -0
- data/lib/selenium/webdriver/common/interactions/interaction.rb +4 -1
- 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 +14 -14
- data/lib/selenium/webdriver/common/options.rb +186 -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 +10 -2
- 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 +23 -113
- 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/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.rb +17 -2
- 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/{chrome/bridge.rb → devtools/pinned_script.rb} +26 -17
- 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 +5 -31
- data/lib/selenium/webdriver/edge/features.rb +44 -0
- data/lib/selenium/webdriver/edge/options.rb +11 -48
- data/lib/selenium/webdriver/edge/profile.rb +33 -0
- data/lib/selenium/webdriver/edge/service.rb +9 -24
- data/lib/selenium/webdriver/edge.rb +11 -13
- data/lib/selenium/webdriver/firefox/driver.rb +20 -30
- 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 +70 -49
- data/lib/selenium/webdriver/firefox/profile.rb +16 -77
- data/lib/selenium/webdriver/firefox/service.rb +1 -5
- data/lib/selenium/webdriver/firefox.rb +22 -16
- data/lib/selenium/webdriver/ie/driver.rb +1 -34
- data/lib/selenium/webdriver/ie/options.rb +13 -44
- data/lib/selenium/webdriver/ie/service.rb +9 -11
- data/lib/selenium/webdriver/ie.rb +8 -7
- data/lib/selenium/webdriver/remote/bridge.rb +112 -86
- data/lib/selenium/webdriver/remote/capabilities.rb +120 -62
- data/lib/selenium/webdriver/remote/commands.rb +7 -0
- data/lib/selenium/webdriver/remote/driver.rb +15 -12
- data/lib/selenium/webdriver/remote/http/common.rb +0 -5
- data/lib/selenium/webdriver/remote/http/default.rb +17 -11
- data/lib/selenium/webdriver/remote/http/persistent.rb +11 -6
- data/lib/selenium/webdriver/remote.rb +15 -9
- data/lib/selenium/webdriver/safari/driver.rb +3 -34
- 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 +0 -4
- data/lib/selenium/webdriver/safari.rb +16 -8
- 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/support/guards/guard_condition.rb +52 -0
- 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 +2 -2
- data/lib/selenium/webdriver/support.rb +1 -0
- data/lib/selenium/webdriver/version.rb +1 -1
- data/lib/selenium/webdriver.rb +10 -8
- data/selenium-webdriver.gemspec +29 -13
- metadata +125 -51
- data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -64
- data/lib/selenium/webdriver/firefox/binary.rb +0 -110
- data/lib/selenium/webdriver/firefox/extension/prefs.json +0 -69
data/selenium-webdriver.gemspec
CHANGED
|
@@ -11,37 +11,53 @@ Gem::Specification.new do |s|
|
|
|
11
11
|
s.version = Selenium::WebDriver::VERSION
|
|
12
12
|
|
|
13
13
|
s.authors = ['Alex Rodionov', 'Titus Fortner', 'Thomas Walpole']
|
|
14
|
-
s.email = [
|
|
14
|
+
s.email = %w[p0deje@gmail.com titusfortner@gmail.com twalpole@gmail.com]
|
|
15
15
|
|
|
16
|
-
s.summary = '
|
|
17
|
-
s.description =
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
s.summary = 'Selenium is a browser automation tool for automated testing of webapps and more'
|
|
17
|
+
s.description = <<-DESCRIPTION
|
|
18
|
+
Selenium implements the W3C WebDriver protocol to automate popular browsers.
|
|
19
|
+
It aims to mimic the behaviour of a real user as it interacts with the application's HTML.
|
|
20
|
+
It's primarily intended for web application testing, but any web-based task can automated.
|
|
21
|
+
DESCRIPTION
|
|
20
22
|
|
|
21
23
|
s.license = 'Apache-2.0'
|
|
22
|
-
s.homepage = 'https://
|
|
24
|
+
s.homepage = 'https://selenium.dev'
|
|
23
25
|
s.metadata = {
|
|
24
|
-
'changelog_uri' => 'https://github.com/SeleniumHQ/selenium/blob/
|
|
25
|
-
'source_code_uri' => 'https://github.com/SeleniumHQ/selenium/tree/
|
|
26
|
+
'changelog_uri' => 'https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES',
|
|
27
|
+
'source_code_uri' => 'https://github.com/SeleniumHQ/selenium/tree/trunk/rb'
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
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.
|
|
31
|
+
s.required_ruby_version = Gem::Requirement.new('>= 2.6')
|
|
32
|
+
|
|
33
|
+
s.files = [
|
|
34
|
+
'CHANGES',
|
|
35
|
+
'LICENSE',
|
|
36
|
+
'NOTICE',
|
|
37
|
+
'Gemfile',
|
|
38
|
+
'README.md',
|
|
39
|
+
'selenium-webdriver.gemspec',
|
|
40
|
+
'lib/selenium-webdriver.rb',
|
|
41
|
+
'lib/selenium/server.rb',
|
|
42
|
+
'lib/selenium/webdriver.rb'
|
|
43
|
+
] + Dir['lib/selenium/webdriver/**/*']
|
|
30
44
|
|
|
31
|
-
s.files = Dir[root + '/**/*'].reject { |e| e =~ /ruby\.iml|build\.desc/ }.map { |e| e.sub(root + '/', '') }
|
|
32
45
|
s.require_paths = ['lib']
|
|
33
46
|
|
|
34
|
-
s.add_runtime_dependency 'childprocess', ['>= 0.5', '<
|
|
35
|
-
s.add_runtime_dependency '
|
|
47
|
+
s.add_runtime_dependency 'childprocess', ['>= 0.5', '< 5.0']
|
|
48
|
+
s.add_runtime_dependency 'rexml', ['~> 3.2', '>= 3.2.5']
|
|
49
|
+
s.add_runtime_dependency 'rubyzip', ['>= 1.2.2']
|
|
36
50
|
|
|
37
51
|
# childprocess requires ffi on windows but doesn't declare it in its dependencies
|
|
38
52
|
s.add_development_dependency 'ffi'
|
|
53
|
+
s.add_development_dependency 'pry', ['~> 0.14']
|
|
39
54
|
s.add_development_dependency 'rack', ['~> 2.0']
|
|
40
55
|
s.add_development_dependency 'rake'
|
|
41
56
|
s.add_development_dependency 'rspec', ['~> 3.0']
|
|
42
|
-
s.add_development_dependency 'rubocop', ['~>
|
|
57
|
+
s.add_development_dependency 'rubocop', ['~> 1.8.0']
|
|
43
58
|
s.add_development_dependency 'rubocop-performance'
|
|
44
59
|
s.add_development_dependency 'rubocop-rspec'
|
|
45
60
|
s.add_development_dependency 'webmock', ['~> 3.5']
|
|
61
|
+
s.add_development_dependency 'webrick', ['~> 1.7']
|
|
46
62
|
s.add_development_dependency 'yard', ['~> 0.9.11']
|
|
47
63
|
end
|
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.0.0
|
|
4
|
+
version: 4.0.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-10-13 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,16 +235,19 @@ 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
|
|
@@ -210,17 +256,28 @@ files:
|
|
|
210
256
|
- lib/selenium/webdriver/common/alert.rb
|
|
211
257
|
- lib/selenium/webdriver/common/driver.rb
|
|
212
258
|
- lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
|
|
259
|
+
- lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb
|
|
213
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
|
|
214
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
|
|
215
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
|
|
216
272
|
- lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
|
|
217
273
|
- lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
|
|
274
|
+
- lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
|
|
218
275
|
- lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
|
|
276
|
+
- lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
|
|
219
277
|
- lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
|
|
220
278
|
- lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
|
|
221
279
|
- lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
|
|
222
|
-
- lib/selenium/webdriver/common/driver_extensions/
|
|
223
|
-
- lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb
|
|
280
|
+
- lib/selenium/webdriver/common/driver_extensions/prints_page.rb
|
|
224
281
|
- lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
|
|
225
282
|
- lib/selenium/webdriver/common/element.rb
|
|
226
283
|
- lib/selenium/webdriver/common/error.rb
|
|
@@ -242,29 +299,40 @@ files:
|
|
|
242
299
|
- lib/selenium/webdriver/common/logs.rb
|
|
243
300
|
- lib/selenium/webdriver/common/manager.rb
|
|
244
301
|
- lib/selenium/webdriver/common/navigation.rb
|
|
302
|
+
- lib/selenium/webdriver/common/options.rb
|
|
245
303
|
- lib/selenium/webdriver/common/platform.rb
|
|
246
304
|
- lib/selenium/webdriver/common/port_prober.rb
|
|
247
305
|
- lib/selenium/webdriver/common/profile_helper.rb
|
|
248
306
|
- lib/selenium/webdriver/common/proxy.rb
|
|
249
307
|
- lib/selenium/webdriver/common/search_context.rb
|
|
250
308
|
- lib/selenium/webdriver/common/service.rb
|
|
309
|
+
- lib/selenium/webdriver/common/service_manager.rb
|
|
310
|
+
- lib/selenium/webdriver/common/shadow_root.rb
|
|
251
311
|
- lib/selenium/webdriver/common/socket_lock.rb
|
|
252
312
|
- lib/selenium/webdriver/common/socket_poller.rb
|
|
313
|
+
- lib/selenium/webdriver/common/takes_screenshot.rb
|
|
253
314
|
- lib/selenium/webdriver/common/target_locator.rb
|
|
254
315
|
- lib/selenium/webdriver/common/timeouts.rb
|
|
255
316
|
- lib/selenium/webdriver/common/wait.rb
|
|
256
317
|
- lib/selenium/webdriver/common/window.rb
|
|
257
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
|
|
258
326
|
- lib/selenium/webdriver/edge.rb
|
|
259
327
|
- lib/selenium/webdriver/edge/driver.rb
|
|
328
|
+
- lib/selenium/webdriver/edge/features.rb
|
|
260
329
|
- lib/selenium/webdriver/edge/options.rb
|
|
330
|
+
- lib/selenium/webdriver/edge/profile.rb
|
|
261
331
|
- lib/selenium/webdriver/edge/service.rb
|
|
262
332
|
- lib/selenium/webdriver/firefox.rb
|
|
263
|
-
- lib/selenium/webdriver/firefox/binary.rb
|
|
264
|
-
- lib/selenium/webdriver/firefox/bridge.rb
|
|
265
333
|
- lib/selenium/webdriver/firefox/driver.rb
|
|
266
334
|
- lib/selenium/webdriver/firefox/extension.rb
|
|
267
|
-
- lib/selenium/webdriver/firefox/
|
|
335
|
+
- lib/selenium/webdriver/firefox/features.rb
|
|
268
336
|
- lib/selenium/webdriver/firefox/options.rb
|
|
269
337
|
- lib/selenium/webdriver/firefox/profile.rb
|
|
270
338
|
- lib/selenium/webdriver/firefox/profiles_ini.rb
|
|
@@ -285,26 +353,32 @@ files:
|
|
|
285
353
|
- lib/selenium/webdriver/remote/response.rb
|
|
286
354
|
- lib/selenium/webdriver/remote/server_error.rb
|
|
287
355
|
- lib/selenium/webdriver/safari.rb
|
|
288
|
-
- lib/selenium/webdriver/safari/bridge.rb
|
|
289
356
|
- lib/selenium/webdriver/safari/driver.rb
|
|
357
|
+
- lib/selenium/webdriver/safari/features.rb
|
|
290
358
|
- lib/selenium/webdriver/safari/options.rb
|
|
291
359
|
- lib/selenium/webdriver/safari/service.rb
|
|
292
360
|
- lib/selenium/webdriver/support.rb
|
|
293
361
|
- lib/selenium/webdriver/support/abstract_event_listener.rb
|
|
294
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
|
|
295
365
|
- lib/selenium/webdriver/support/color.rb
|
|
296
366
|
- lib/selenium/webdriver/support/escaper.rb
|
|
297
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
|
|
298
372
|
- lib/selenium/webdriver/support/select.rb
|
|
299
373
|
- lib/selenium/webdriver/version.rb
|
|
300
374
|
- selenium-webdriver.gemspec
|
|
301
|
-
homepage: https://
|
|
375
|
+
homepage: https://selenium.dev
|
|
302
376
|
licenses:
|
|
303
377
|
- Apache-2.0
|
|
304
378
|
metadata:
|
|
305
|
-
changelog_uri: https://github.com/SeleniumHQ/selenium/blob/
|
|
306
|
-
source_code_uri: https://github.com/SeleniumHQ/selenium/tree/
|
|
307
|
-
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:
|
|
308
382
|
rdoc_options: []
|
|
309
383
|
require_paths:
|
|
310
384
|
- lib
|
|
@@ -312,16 +386,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
312
386
|
requirements:
|
|
313
387
|
- - ">="
|
|
314
388
|
- !ruby/object:Gem::Version
|
|
315
|
-
version: '2.
|
|
389
|
+
version: '2.6'
|
|
316
390
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
317
391
|
requirements:
|
|
318
392
|
- - ">"
|
|
319
393
|
- !ruby/object:Gem::Version
|
|
320
394
|
version: 1.3.1
|
|
321
395
|
requirements: []
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
signing_key:
|
|
396
|
+
rubygems_version: 3.0.3
|
|
397
|
+
signing_key:
|
|
325
398
|
specification_version: 4
|
|
326
|
-
summary:
|
|
399
|
+
summary: Selenium is a browser automation tool for automated testing of webapps and
|
|
400
|
+
more
|
|
327
401
|
test_files: []
|
|
@@ -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.unpack1('m')
|
|
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,110 +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
|
-
module Firefox
|
|
23
|
-
# @api private
|
|
24
|
-
class Binary
|
|
25
|
-
class << self
|
|
26
|
-
#
|
|
27
|
-
# @api private
|
|
28
|
-
#
|
|
29
|
-
# @see Firefox.path=
|
|
30
|
-
#
|
|
31
|
-
|
|
32
|
-
def path=(path)
|
|
33
|
-
Platform.assert_executable(path)
|
|
34
|
-
@path = path
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def reset_path!
|
|
38
|
-
@path = nil
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def path
|
|
42
|
-
@path ||= case Platform.os
|
|
43
|
-
when :macosx
|
|
44
|
-
macosx_path
|
|
45
|
-
when :windows
|
|
46
|
-
windows_path
|
|
47
|
-
when :linux, :unix
|
|
48
|
-
Platform.find_binary('firefox3', 'firefox2', 'firefox') || '/usr/bin/firefox'
|
|
49
|
-
else
|
|
50
|
-
raise Error::WebDriverError, "unknown platform: #{Platform.os}"
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
@path = Platform.cygwin_path(@path, windows: true) if Platform.cygwin?
|
|
54
|
-
|
|
55
|
-
unless File.file?(@path.to_s)
|
|
56
|
-
error = "Could not find Firefox binary (os=#{Platform.os}). "
|
|
57
|
-
error << "Make sure Firefox is installed or set the path manually with #{self}.path="
|
|
58
|
-
raise Error::WebDriverError, error
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
@path
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def version
|
|
65
|
-
@version = case Platform.os
|
|
66
|
-
when :macosx
|
|
67
|
-
`#{path} -v`.strip[/[^\s]*$/][/^\d+/].to_i
|
|
68
|
-
when :windows
|
|
69
|
-
`\"#{path}\" -v | more`.strip[/[^\s]*$/][/^\d+/].to_i
|
|
70
|
-
when :linux
|
|
71
|
-
`#{path} -v`.strip[/[^\s]*$/][/^\d+/].to_i
|
|
72
|
-
else
|
|
73
|
-
0
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
private
|
|
78
|
-
|
|
79
|
-
def windows_path
|
|
80
|
-
windows_registry_path ||
|
|
81
|
-
Platform.find_in_program_files('\\Mozilla Firefox\\firefox.exe') ||
|
|
82
|
-
Platform.find_binary('firefox')
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def macosx_path
|
|
86
|
-
path = '/Applications/Firefox.app/Contents/MacOS/firefox-bin'
|
|
87
|
-
path = File.expand_path('~/Applications/Firefox.app/Contents/MacOS/firefox-bin') unless File.exist?(path)
|
|
88
|
-
path = Platform.find_binary('firefox-bin') unless File.exist?(path)
|
|
89
|
-
|
|
90
|
-
path
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
def windows_registry_path
|
|
94
|
-
require 'win32/registry'
|
|
95
|
-
|
|
96
|
-
lm = Win32::Registry::HKEY_LOCAL_MACHINE
|
|
97
|
-
lm.open('SOFTWARE\\Mozilla\\Mozilla Firefox') do |reg|
|
|
98
|
-
main = lm.open("SOFTWARE\\Mozilla\\Mozilla Firefox\\#{reg.keys[0]}\\Main")
|
|
99
|
-
entry = main.find { |key, _type, _data| /pathtoexe/i.match? key }
|
|
100
|
-
return entry.last if entry
|
|
101
|
-
end
|
|
102
|
-
rescue LoadError
|
|
103
|
-
# older JRuby or IronRuby does not have win32/registry
|
|
104
|
-
rescue Win32::Registry::Error
|
|
105
|
-
end
|
|
106
|
-
end # class << self
|
|
107
|
-
end # Binary
|
|
108
|
-
end # Firefox
|
|
109
|
-
end # WebDriver
|
|
110
|
-
end # Selenium
|