webdrivers 4.0.0 → 5.2.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 +4 -4
- data/CHANGELOG.md +98 -0
- data/README.md +88 -34
- data/lib/webdrivers/chrome_finder.rb +77 -9
- data/lib/webdrivers/chromedriver.rb +65 -39
- data/lib/webdrivers/common.rb +31 -21
- data/lib/webdrivers/edge_finder.rb +98 -0
- data/lib/webdrivers/edgedriver.rb +99 -0
- data/lib/webdrivers/geckodriver.rb +2 -23
- data/lib/webdrivers/iedriver.rb +14 -20
- data/lib/webdrivers/logger.rb +2 -93
- data/lib/webdrivers/network.rb +2 -0
- data/lib/webdrivers/railtie.rb +0 -1
- data/lib/webdrivers/system.rb +57 -14
- data/lib/webdrivers/tasks/chromedriver.rake +0 -2
- data/lib/webdrivers/tasks/edgedriver.rake +44 -0
- data/lib/webdrivers/tasks/geckodriver.rake +0 -2
- data/lib/webdrivers/tasks/iedriver.rake +0 -2
- data/lib/webdrivers/version.rb +1 -1
- data/lib/webdrivers.rb +1 -0
- data/spec/webdrivers/chrome_finder_spec.rb +103 -0
- data/spec/webdrivers/chromedriver_spec.rb +33 -15
- data/spec/webdrivers/edge_finder_spec.rb +52 -0
- data/spec/webdrivers/edgedriver_spec.rb +273 -0
- data/spec/webdrivers/geckodriver_spec.rb +45 -10
- data/spec/webdrivers/i_edriver_spec.rb +17 -12
- data/spec/webdrivers/system_spec.rb +79 -0
- data/spec/webdrivers/webdrivers_spec.rb +38 -26
- metadata +51 -24
- data/.github/ISSUE_TEMPLATE.md +0 -14
- data/.gitignore +0 -7
- data/.rubocop.yml +0 -45
- data/.travis.yml +0 -24
- data/Gemfile +0 -6
- data/Rakefile +0 -11
- data/appveyor.yml +0 -23
- data/webdrivers.gemspec +0 -33
|
@@ -92,6 +92,40 @@ describe Webdrivers::Geckodriver do
|
|
|
92
92
|
msg = /Net::HTTPServerException: 404 "Not Found"/
|
|
93
93
|
expect { geckodriver.update }.to raise_error(StandardError, msg)
|
|
94
94
|
end
|
|
95
|
+
|
|
96
|
+
context 'when platform is Apple Sillicon' do
|
|
97
|
+
it 'downloads aarch64 binary' do
|
|
98
|
+
allow(Webdrivers::System).to receive(:platform).and_return('mac')
|
|
99
|
+
allow(Webdrivers::System).to receive(:apple_m1_architecture?).and_return(true)
|
|
100
|
+
base = 'https://github.com/mozilla/geckodriver/releases/download'
|
|
101
|
+
binary = 'geckodriver-v0.31.0-macos-aarch64.tar.gz'
|
|
102
|
+
url = "#{base}/v0.31.0/#{binary}"
|
|
103
|
+
|
|
104
|
+
allow(Webdrivers::System).to receive(:download).with(url, geckodriver.driver_path)
|
|
105
|
+
|
|
106
|
+
geckodriver.required_version = '0.31.0'
|
|
107
|
+
geckodriver.update
|
|
108
|
+
|
|
109
|
+
expect(Webdrivers::System).to have_received(:download).with(url, geckodriver.driver_path)
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
context 'when platform isn\'t Apple Sillicon' do
|
|
114
|
+
it 'downloads default binary' do
|
|
115
|
+
allow(Webdrivers::System).to receive(:platform).and_return('mac')
|
|
116
|
+
allow(Webdrivers::System).to receive(:apple_m1_architecture?).and_return(false)
|
|
117
|
+
base = 'https://github.com/mozilla/geckodriver/releases/download'
|
|
118
|
+
binary = 'geckodriver-v0.31.0-macos.tar.gz'
|
|
119
|
+
url = "#{base}/v0.31.0/#{binary}"
|
|
120
|
+
|
|
121
|
+
allow(Webdrivers::System).to receive(:download).with(url, geckodriver.driver_path)
|
|
122
|
+
|
|
123
|
+
geckodriver.required_version = '0.31.0'
|
|
124
|
+
geckodriver.update
|
|
125
|
+
|
|
126
|
+
expect(Webdrivers::System).to have_received(:download).with(url, geckodriver.driver_path)
|
|
127
|
+
end
|
|
128
|
+
end
|
|
95
129
|
end
|
|
96
130
|
|
|
97
131
|
describe '#current_version' do
|
|
@@ -112,7 +146,7 @@ testing/geckodriver in https://hg.mozilla.org/mozilla-central.
|
|
|
112
146
|
This program is subject to the terms of the Mozilla Public License 2.0.
|
|
113
147
|
You can obtain a copy of the license at https://mozilla.org/MPL/2.0/"
|
|
114
148
|
|
|
115
|
-
allow(Webdrivers::System).to receive(:call).with(
|
|
149
|
+
allow(Webdrivers::System).to receive(:call).with(geckodriver.driver_path, '--version').and_return return_value
|
|
116
150
|
|
|
117
151
|
expect(geckodriver.current_version).to eq Gem::Version.new('0.24.0')
|
|
118
152
|
end
|
|
@@ -135,9 +169,10 @@ You can obtain a copy of the license at https://mozilla.org/MPL/2.0/"
|
|
|
135
169
|
expect(File.exist?("#{Webdrivers::System.install_dir}/geckodriver.version")).to eq true
|
|
136
170
|
end
|
|
137
171
|
|
|
138
|
-
it 'does not make network
|
|
172
|
+
it 'does not make network calls if cache is valid and driver exists' do
|
|
139
173
|
allow(Webdrivers).to receive(:cache_time).and_return(3600)
|
|
140
174
|
Webdrivers::System.cache_version('geckodriver', '0.23.0')
|
|
175
|
+
allow(Webdrivers::System).to receive(:exists?).and_return(true)
|
|
141
176
|
allow(Webdrivers::Network).to receive(:get)
|
|
142
177
|
|
|
143
178
|
expect(geckodriver.latest_version).to eq Gem::Version.new('0.23.0')
|
|
@@ -191,20 +226,20 @@ You can obtain a copy of the license at https://mozilla.org/MPL/2.0/"
|
|
|
191
226
|
end
|
|
192
227
|
|
|
193
228
|
it 'uses provided value' do
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
Webdrivers.install_dir = install_dir
|
|
229
|
+
install_dir = File.expand_path(File.join(ENV['HOME'], '.webdrivers2'))
|
|
230
|
+
Webdrivers.install_dir = install_dir
|
|
197
231
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
end
|
|
232
|
+
expect(Webdrivers::System.install_dir).to eq install_dir
|
|
233
|
+
ensure
|
|
234
|
+
Webdrivers.install_dir = nil
|
|
202
235
|
end
|
|
203
236
|
end
|
|
204
237
|
|
|
205
238
|
describe '#driver_path' do
|
|
206
239
|
it 'returns full location of binary' do
|
|
207
|
-
|
|
240
|
+
expected_bin = "geckodriver#{'.exe' if Selenium::WebDriver::Platform.windows?}"
|
|
241
|
+
expected_path = File.absolute_path "#{File.join(ENV['HOME'])}/.webdrivers/#{expected_bin}"
|
|
242
|
+
expect(geckodriver.driver_path).to eq(expected_path)
|
|
208
243
|
end
|
|
209
244
|
end
|
|
210
245
|
end
|
|
@@ -6,6 +6,10 @@ describe Webdrivers::IEdriver do
|
|
|
6
6
|
let(:iedriver) { described_class }
|
|
7
7
|
|
|
8
8
|
before do
|
|
9
|
+
if ENV['CI'] && !Selenium::WebDriver::Platform.windows?
|
|
10
|
+
skip('Only run IE tests on Windows on CI because rate limiting')
|
|
11
|
+
end
|
|
12
|
+
|
|
9
13
|
iedriver.remove
|
|
10
14
|
iedriver.required_version = nil
|
|
11
15
|
end
|
|
@@ -69,7 +73,7 @@ describe Webdrivers::IEdriver do
|
|
|
69
73
|
it 'raises ConnectionError if offline' do
|
|
70
74
|
allow(Net::HTTP).to receive(:get_response).and_raise(SocketError)
|
|
71
75
|
|
|
72
|
-
msg = %r{Can not reach https://
|
|
76
|
+
msg = %r{Can not reach https://api.github.com/repos/seleniumhq/selenium/releases}
|
|
73
77
|
expect { iedriver.update }.to raise_error(Webdrivers::ConnectionError, msg)
|
|
74
78
|
end
|
|
75
79
|
end
|
|
@@ -87,7 +91,7 @@ describe Webdrivers::IEdriver do
|
|
|
87
91
|
|
|
88
92
|
return_value = 'something IEDriverServer.exe 3.5.1 something else'
|
|
89
93
|
|
|
90
|
-
allow(Webdrivers::System).to receive(:call).with(
|
|
94
|
+
allow(Webdrivers::System).to receive(:call).with(iedriver.driver_path, '--version').and_return return_value
|
|
91
95
|
|
|
92
96
|
expect(iedriver.current_version).to eq Gem::Version.new('3.5.1')
|
|
93
97
|
end
|
|
@@ -109,15 +113,17 @@ describe Webdrivers::IEdriver do
|
|
|
109
113
|
end
|
|
110
114
|
|
|
111
115
|
it 'creates cached file' do
|
|
112
|
-
|
|
116
|
+
json = '[{"assets": [{"name":"IEDriverServer_Win32_3.150.0.zip"}]}]'
|
|
117
|
+
allow(Webdrivers::Network).to receive(:get).and_return(json)
|
|
113
118
|
|
|
114
119
|
iedriver.latest_version
|
|
115
120
|
expect(File.exist?("#{Webdrivers::System.install_dir}/IEDriverServer.version")).to eq true
|
|
116
121
|
end
|
|
117
122
|
|
|
118
|
-
it 'does not make network
|
|
123
|
+
it 'does not make network calls if cache is valid and driver exists' do
|
|
119
124
|
allow(Webdrivers).to receive(:cache_time).and_return(3600)
|
|
120
125
|
Webdrivers::System.cache_version('IEDriverServer', '3.4.0')
|
|
126
|
+
allow(Webdrivers::System).to receive(:exists?).and_return(true)
|
|
121
127
|
allow(Webdrivers::Network).to receive(:get)
|
|
122
128
|
|
|
123
129
|
expect(iedriver.latest_version).to eq Gem::Version.new('3.4.0')
|
|
@@ -173,20 +179,19 @@ describe Webdrivers::IEdriver do
|
|
|
173
179
|
end
|
|
174
180
|
|
|
175
181
|
it 'uses provided value' do
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
Webdrivers.install_dir = install_dir
|
|
182
|
+
install_dir = File.expand_path(File.join(ENV['HOME'], '.webdrivers2'))
|
|
183
|
+
Webdrivers.install_dir = install_dir
|
|
179
184
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
end
|
|
185
|
+
expect(Webdrivers::System.install_dir).to eq install_dir
|
|
186
|
+
ensure
|
|
187
|
+
Webdrivers.install_dir = nil
|
|
184
188
|
end
|
|
185
189
|
end
|
|
186
190
|
|
|
187
191
|
describe '#driver_path' do
|
|
188
192
|
it 'returns full location of binary' do
|
|
189
|
-
|
|
193
|
+
expected_path = File.absolute_path "#{File.join(ENV['HOME'])}/.webdrivers/IEDriverServer.exe"
|
|
194
|
+
expect(iedriver.driver_path).to eq(expected_path)
|
|
190
195
|
end
|
|
191
196
|
end
|
|
192
197
|
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'spec_helper'
|
|
4
|
+
|
|
5
|
+
describe Webdrivers::System do
|
|
6
|
+
describe '#wsl_v1?' do
|
|
7
|
+
subject { described_class.wsl_v1? }
|
|
8
|
+
|
|
9
|
+
before do
|
|
10
|
+
allow(described_class).to receive(:platform).and_return(platform)
|
|
11
|
+
allow(File).to receive(:open).with('/proc/version').and_return(StringIO.new(wsl_proc_version_contents))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
let(:platform) { 'linux' }
|
|
15
|
+
let(:wsl_proc_version_contents) { '' }
|
|
16
|
+
|
|
17
|
+
context 'when the current platform is linux and WSL version is 1' do
|
|
18
|
+
let(:wsl_proc_version_contents) do
|
|
19
|
+
'Linux version 4.4.0-18362-Microsoft'\
|
|
20
|
+
'(Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) )'\
|
|
21
|
+
'#836-Microsoft Mon May 05 16:04:00 PST 2020'
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it { is_expected.to eq true }
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
context 'when the current platform is linux and WSL version is 2' do
|
|
28
|
+
let(:wsl_proc_version_contents) do
|
|
29
|
+
'Linux version 4.19.84-microsoft-standard '\
|
|
30
|
+
'(oe-user@oe-host) (gcc version 8.2.0 (GCC)) '\
|
|
31
|
+
'#1 SMP Wed Nov 13 11:44:37 UTC 2019'
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it { is_expected.to eq false }
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
context 'when the current platform is mac' do
|
|
38
|
+
let(:platform) { 'mac' }
|
|
39
|
+
|
|
40
|
+
it { is_expected.to eq false }
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
describe '#to_win32_path' do
|
|
45
|
+
before { allow(described_class).to receive(:call).and_return("C:\\path\\to\\folder\n") }
|
|
46
|
+
|
|
47
|
+
it 'uses wslpath' do
|
|
48
|
+
described_class.to_win32_path '/c/path/to/folder'
|
|
49
|
+
|
|
50
|
+
expect(described_class).to have_received(:call).with('wslpath -w \'/c/path/to/folder\'')
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it 'removes the trailing newline' do
|
|
54
|
+
expect(described_class.to_win32_path('/c/path/to/folder')).not_to end_with('\n')
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
context 'when the path is already in Windows format' do
|
|
58
|
+
it 'returns early' do
|
|
59
|
+
expect(described_class.to_win32_path('D:\\')).to eq 'D:\\'
|
|
60
|
+
|
|
61
|
+
expect(described_class).not_to have_received(:call)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
describe '#to_wsl_path' do
|
|
67
|
+
before { allow(described_class).to receive(:call).and_return("/c/path/to/folder\n") }
|
|
68
|
+
|
|
69
|
+
it 'uses wslpath' do
|
|
70
|
+
described_class.to_wsl_path 'C:\\path\\to\\folder'
|
|
71
|
+
|
|
72
|
+
expect(described_class).to have_received(:call).with('wslpath -u \'C:\\path\\to\\folder\'')
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
it 'removes the trailing newline' do
|
|
76
|
+
expect(described_class.to_wsl_path('/c/path/to/folder')).not_to end_with('\n')
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -6,32 +6,38 @@ describe Webdrivers do
|
|
|
6
6
|
describe '#cache_time' do
|
|
7
7
|
before { Webdrivers::Chromedriver.remove }
|
|
8
8
|
|
|
9
|
-
after { described_class.cache_time =
|
|
9
|
+
after { described_class.cache_time = nil }
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
described_class.cache_time =
|
|
11
|
+
context 'when cache time is not set' do
|
|
12
|
+
before { described_class.cache_time = nil }
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
it 'defaults cache time to 86,400 Seconds (24 hours)' do
|
|
15
|
+
expect(described_class.cache_time).to eq(86_400)
|
|
16
|
+
end
|
|
16
17
|
end
|
|
17
18
|
|
|
18
|
-
context 'when
|
|
19
|
-
before { described_class.cache_time =
|
|
19
|
+
context 'when Webdrivers.cache_time is set' do
|
|
20
|
+
before { described_class.cache_time = '999' }
|
|
20
21
|
|
|
21
|
-
it '
|
|
22
|
-
|
|
23
|
-
expect(described_class.cache_time).to be(999)
|
|
22
|
+
it 'returns user defined cache time' do
|
|
23
|
+
expect(described_class.cache_time).to eq(999)
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
it 'returns cache time as an Integer' do
|
|
27
|
-
allow(ENV).to receive(:[]).with('WD_CACHE_TIME').and_return('999')
|
|
28
27
|
expect(described_class.cache_time).to be_an_instance_of(Integer)
|
|
29
28
|
end
|
|
30
29
|
end
|
|
31
30
|
|
|
32
|
-
context 'when
|
|
31
|
+
context 'when ENV variable WD_CACHE_TIME is set' do
|
|
32
|
+
before { described_class.cache_time = 3600 }
|
|
33
|
+
|
|
34
|
+
it 'uses cache time value from Webdrivers.cache_time over the ENV variable value' do
|
|
35
|
+
allow(ENV).to receive(:[]).with('WD_CACHE_TIME').and_return(900)
|
|
36
|
+
expect(described_class.cache_time).to be(3600)
|
|
37
|
+
end
|
|
38
|
+
|
|
33
39
|
it 'returns cache time as an Integer' do
|
|
34
|
-
|
|
40
|
+
allow(ENV).to receive(:fetch).with('WD_CACHE_TIME', 3600).and_return('999')
|
|
35
41
|
expect(described_class.cache_time).to be_an_instance_of(Integer)
|
|
36
42
|
end
|
|
37
43
|
end
|
|
@@ -43,25 +49,31 @@ describe Webdrivers do
|
|
|
43
49
|
end
|
|
44
50
|
|
|
45
51
|
it 'uses provided value' do
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
described_class.install_dir = install_dir
|
|
52
|
+
install_dir = File.expand_path(File.join(ENV['HOME'], '.webdrivers2'))
|
|
53
|
+
described_class.install_dir = install_dir
|
|
49
54
|
|
|
50
|
-
|
|
55
|
+
expect(described_class.install_dir).to eq install_dir
|
|
56
|
+
ensure
|
|
57
|
+
described_class.install_dir = nil
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
context 'when ENV variable WD_INSTALL_DIR is set and Webdrivers.install_dir is not' do
|
|
61
|
+
it 'uses path from the ENV variable' do
|
|
62
|
+
described_class.install_dir = nil
|
|
63
|
+
allow(ENV).to receive(:[]).with('WD_INSTALL_DIR').and_return('custom_dir')
|
|
64
|
+
expect(described_class.install_dir).to be('custom_dir')
|
|
51
65
|
ensure
|
|
52
66
|
described_class.install_dir = nil
|
|
53
67
|
end
|
|
54
68
|
end
|
|
55
69
|
|
|
56
|
-
context 'when ENV variable WD_INSTALL_DIR
|
|
57
|
-
it 'uses path from
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
described_class.install_dir = nil
|
|
64
|
-
end
|
|
70
|
+
context 'when both ENV variable WD_INSTALL_DIR and Webdrivers.install_dir are set' do
|
|
71
|
+
it 'uses path from Webdrivers.install_dir' do
|
|
72
|
+
described_class.install_dir = 'my_install_dir_path'
|
|
73
|
+
allow(ENV).to receive(:[]).with('WD_INSTALL_DIR').and_return('my_env_path')
|
|
74
|
+
expect(described_class.install_dir).to be('my_install_dir_path')
|
|
75
|
+
ensure
|
|
76
|
+
described_class.install_dir = nil
|
|
65
77
|
end
|
|
66
78
|
end
|
|
67
79
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: webdrivers
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 5.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Titus Fortner
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2022-09-29 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: ffi
|
|
@@ -60,14 +60,28 @@ dependencies:
|
|
|
60
60
|
requirements:
|
|
61
61
|
- - "~>"
|
|
62
62
|
- !ruby/object:Gem::Version
|
|
63
|
-
version: '0.
|
|
63
|
+
version: '0.89'
|
|
64
64
|
type: :development
|
|
65
65
|
prerelease: false
|
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
|
67
67
|
requirements:
|
|
68
68
|
- - "~>"
|
|
69
69
|
- !ruby/object:Gem::Version
|
|
70
|
-
version: '0.
|
|
70
|
+
version: '0.89'
|
|
71
|
+
- !ruby/object:Gem::Dependency
|
|
72
|
+
name: rubocop-packaging
|
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
|
74
|
+
requirements:
|
|
75
|
+
- - "~>"
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: 0.5.0
|
|
78
|
+
type: :development
|
|
79
|
+
prerelease: false
|
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
81
|
+
requirements:
|
|
82
|
+
- - "~>"
|
|
83
|
+
- !ruby/object:Gem::Version
|
|
84
|
+
version: 0.5.0
|
|
71
85
|
- !ruby/object:Gem::Dependency
|
|
72
86
|
name: rubocop-performance
|
|
73
87
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -88,14 +102,14 @@ dependencies:
|
|
|
88
102
|
requirements:
|
|
89
103
|
- - "~>"
|
|
90
104
|
- !ruby/object:Gem::Version
|
|
91
|
-
version: '1.
|
|
105
|
+
version: '1.42'
|
|
92
106
|
type: :development
|
|
93
107
|
prerelease: false
|
|
94
108
|
version_requirements: !ruby/object:Gem::Requirement
|
|
95
109
|
requirements:
|
|
96
110
|
- - "~>"
|
|
97
111
|
- !ruby/object:Gem::Version
|
|
98
|
-
version: '1.
|
|
112
|
+
version: '1.42'
|
|
99
113
|
- !ruby/object:Gem::Dependency
|
|
100
114
|
name: simplecov
|
|
101
115
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -128,30 +142,30 @@ dependencies:
|
|
|
128
142
|
name: rubyzip
|
|
129
143
|
requirement: !ruby/object:Gem::Requirement
|
|
130
144
|
requirements:
|
|
131
|
-
- - "
|
|
145
|
+
- - ">="
|
|
132
146
|
- !ruby/object:Gem::Version
|
|
133
|
-
version:
|
|
147
|
+
version: 1.3.0
|
|
134
148
|
type: :runtime
|
|
135
149
|
prerelease: false
|
|
136
150
|
version_requirements: !ruby/object:Gem::Requirement
|
|
137
151
|
requirements:
|
|
138
|
-
- - "
|
|
152
|
+
- - ">="
|
|
139
153
|
- !ruby/object:Gem::Version
|
|
140
|
-
version:
|
|
154
|
+
version: 1.3.0
|
|
141
155
|
- !ruby/object:Gem::Dependency
|
|
142
156
|
name: selenium-webdriver
|
|
143
157
|
requirement: !ruby/object:Gem::Requirement
|
|
144
158
|
requirements:
|
|
145
159
|
- - "~>"
|
|
146
160
|
- !ruby/object:Gem::Version
|
|
147
|
-
version: '
|
|
161
|
+
version: '4.0'
|
|
148
162
|
type: :runtime
|
|
149
163
|
prerelease: false
|
|
150
164
|
version_requirements: !ruby/object:Gem::Requirement
|
|
151
165
|
requirements:
|
|
152
166
|
- - "~>"
|
|
153
167
|
- !ruby/object:Gem::Version
|
|
154
|
-
version: '
|
|
168
|
+
version: '4.0'
|
|
155
169
|
description: Run Selenium tests more easily with install and updates for all supported
|
|
156
170
|
webdrivers.
|
|
157
171
|
email:
|
|
@@ -161,21 +175,16 @@ executables: []
|
|
|
161
175
|
extensions: []
|
|
162
176
|
extra_rdoc_files: []
|
|
163
177
|
files:
|
|
164
|
-
- ".github/ISSUE_TEMPLATE.md"
|
|
165
|
-
- ".gitignore"
|
|
166
|
-
- ".rubocop.yml"
|
|
167
|
-
- ".travis.yml"
|
|
168
178
|
- CHANGELOG.md
|
|
169
|
-
- Gemfile
|
|
170
179
|
- LICENSE.txt
|
|
171
180
|
- README.md
|
|
172
|
-
- Rakefile
|
|
173
|
-
- appveyor.yml
|
|
174
181
|
- lib/webdrivers.rb
|
|
175
182
|
- lib/webdrivers/Rakefile
|
|
176
183
|
- lib/webdrivers/chrome_finder.rb
|
|
177
184
|
- lib/webdrivers/chromedriver.rb
|
|
178
185
|
- lib/webdrivers/common.rb
|
|
186
|
+
- lib/webdrivers/edge_finder.rb
|
|
187
|
+
- lib/webdrivers/edgedriver.rb
|
|
179
188
|
- lib/webdrivers/geckodriver.rb
|
|
180
189
|
- lib/webdrivers/iedriver.rb
|
|
181
190
|
- lib/webdrivers/logger.rb
|
|
@@ -183,20 +192,28 @@ files:
|
|
|
183
192
|
- lib/webdrivers/railtie.rb
|
|
184
193
|
- lib/webdrivers/system.rb
|
|
185
194
|
- lib/webdrivers/tasks/chromedriver.rake
|
|
195
|
+
- lib/webdrivers/tasks/edgedriver.rake
|
|
186
196
|
- lib/webdrivers/tasks/geckodriver.rake
|
|
187
197
|
- lib/webdrivers/tasks/iedriver.rake
|
|
188
198
|
- lib/webdrivers/version.rb
|
|
189
199
|
- spec/spec_helper.rb
|
|
200
|
+
- spec/webdrivers/chrome_finder_spec.rb
|
|
190
201
|
- spec/webdrivers/chromedriver_spec.rb
|
|
202
|
+
- spec/webdrivers/edge_finder_spec.rb
|
|
203
|
+
- spec/webdrivers/edgedriver_spec.rb
|
|
191
204
|
- spec/webdrivers/geckodriver_spec.rb
|
|
192
205
|
- spec/webdrivers/i_edriver_spec.rb
|
|
206
|
+
- spec/webdrivers/system_spec.rb
|
|
193
207
|
- spec/webdrivers/webdrivers_spec.rb
|
|
194
208
|
- spec/webdrivers_proxy_support_spec.rb
|
|
195
|
-
- webdrivers.gemspec
|
|
196
209
|
homepage: https://github.com/titusfortner/webdrivers
|
|
197
210
|
licenses:
|
|
198
211
|
- MIT
|
|
199
|
-
metadata:
|
|
212
|
+
metadata:
|
|
213
|
+
bug_tracker_uri: https://github.com/titusfortner/webdrivers/issues
|
|
214
|
+
changelog_uri: https://github.com/titusfortner/webdrivers/blob/master/CHANGELOG.md
|
|
215
|
+
documentation_uri: https://www.rubydoc.info/gems/webdrivers/5.2.0
|
|
216
|
+
source_code_uri: https://github.com/titusfortner/webdrivers/tree/v5.2.0
|
|
200
217
|
post_install_message:
|
|
201
218
|
rdoc_options: []
|
|
202
219
|
require_paths:
|
|
@@ -205,15 +222,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
205
222
|
requirements:
|
|
206
223
|
- - ">="
|
|
207
224
|
- !ruby/object:Gem::Version
|
|
208
|
-
version:
|
|
225
|
+
version: 2.6.0
|
|
209
226
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
227
|
requirements:
|
|
211
228
|
- - ">="
|
|
212
229
|
- !ruby/object:Gem::Version
|
|
213
230
|
version: '0'
|
|
214
231
|
requirements: []
|
|
215
|
-
rubygems_version: 3.
|
|
232
|
+
rubygems_version: 3.3.22
|
|
216
233
|
signing_key:
|
|
217
234
|
specification_version: 4
|
|
218
235
|
summary: Easy download and use of browser drivers.
|
|
219
|
-
test_files:
|
|
236
|
+
test_files:
|
|
237
|
+
- spec/spec_helper.rb
|
|
238
|
+
- spec/webdrivers/chrome_finder_spec.rb
|
|
239
|
+
- spec/webdrivers/edge_finder_spec.rb
|
|
240
|
+
- spec/webdrivers/webdrivers_spec.rb
|
|
241
|
+
- spec/webdrivers/system_spec.rb
|
|
242
|
+
- spec/webdrivers/edgedriver_spec.rb
|
|
243
|
+
- spec/webdrivers/i_edriver_spec.rb
|
|
244
|
+
- spec/webdrivers/geckodriver_spec.rb
|
|
245
|
+
- spec/webdrivers/chromedriver_spec.rb
|
|
246
|
+
- spec/webdrivers_proxy_support_spec.rb
|
data/.github/ISSUE_TEMPLATE.md
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#### Summary
|
|
2
|
-
Short summary of the bug or feature request.
|
|
3
|
-
|
|
4
|
-
#### Debug Info
|
|
5
|
-
Please provide the following information for bug reports:
|
|
6
|
-
|
|
7
|
-
* Operating system / CI Environment:
|
|
8
|
-
* Browser and version:
|
|
9
|
-
|
|
10
|
-
#### Expected Behavior
|
|
11
|
-
What you expect to happen.
|
|
12
|
-
|
|
13
|
-
#### Actual Behavior
|
|
14
|
-
What is actually happening: Error message, stack trace, DEBUG log if applicable (set `Webdrivers.logger.level = :DEBUG` after you require webdrivers)
|
data/.gitignore
DELETED
data/.rubocop.yml
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
AllCops:
|
|
2
|
-
TargetRubyVersion: 2.4.6
|
|
3
|
-
|
|
4
|
-
require:
|
|
5
|
-
- rubocop-rspec
|
|
6
|
-
- rubocop-performance
|
|
7
|
-
|
|
8
|
-
Layout/SpaceInsideHashLiteralBraces:
|
|
9
|
-
EnforcedStyle: no_space
|
|
10
|
-
|
|
11
|
-
Layout/EndOfLine:
|
|
12
|
-
EnforcedStyle: lf
|
|
13
|
-
|
|
14
|
-
Metrics/LineLength:
|
|
15
|
-
Max: 120
|
|
16
|
-
IgnoredPatterns:
|
|
17
|
-
- '\s+# rubocop:disable'
|
|
18
|
-
|
|
19
|
-
Metrics/MethodLength:
|
|
20
|
-
Max: 20
|
|
21
|
-
|
|
22
|
-
Metrics/BlockLength:
|
|
23
|
-
Exclude:
|
|
24
|
-
- 'spec/**/*'
|
|
25
|
-
- 'lib/webdrivers/tasks/*.rake'
|
|
26
|
-
|
|
27
|
-
Metrics/ClassLength:
|
|
28
|
-
Max: 116
|
|
29
|
-
|
|
30
|
-
Metrics/CyclomaticComplexity:
|
|
31
|
-
Max: 8
|
|
32
|
-
|
|
33
|
-
Metrics/AbcSize:
|
|
34
|
-
Max: 16
|
|
35
|
-
Exclude:
|
|
36
|
-
- 'lib/webdrivers/chromedriver.rb'
|
|
37
|
-
|
|
38
|
-
Style/Documentation:
|
|
39
|
-
Enabled: false
|
|
40
|
-
|
|
41
|
-
RSpec/ExampleLength:
|
|
42
|
-
Enabled: false
|
|
43
|
-
|
|
44
|
-
RSpec/MultipleExpectations:
|
|
45
|
-
Enabled: false
|
data/.travis.yml
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
language: ruby
|
|
2
|
-
cache: bundler
|
|
3
|
-
addons:
|
|
4
|
-
apt:
|
|
5
|
-
packages:
|
|
6
|
-
- chromium-browser
|
|
7
|
-
- libgconf-2-4
|
|
8
|
-
chrome: stable
|
|
9
|
-
script: bundle exec rake $RAKE_TASK
|
|
10
|
-
matrix:
|
|
11
|
-
include:
|
|
12
|
-
- rvm: 2.6.3
|
|
13
|
-
env: RAKE_TASK=spec
|
|
14
|
-
- rvm: 2.5.5
|
|
15
|
-
env: RAKE_TASK=spec
|
|
16
|
-
- rvm: 2.4.6
|
|
17
|
-
env: RAKE_TASK=spec
|
|
18
|
-
- rvm: 2.4.6
|
|
19
|
-
os: osx
|
|
20
|
-
env: RAKE_TASK=spec
|
|
21
|
-
- rvm: 2.4.6
|
|
22
|
-
env: RAKE_TASK=rubocop
|
|
23
|
-
- rvm: jruby-9.2.7.0
|
|
24
|
-
env: RAKE_TASK=spec
|
data/Gemfile
DELETED
data/Rakefile
DELETED
data/appveyor.yml
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
build: off
|
|
2
|
-
cache:
|
|
3
|
-
- vendor/bundle
|
|
4
|
-
environment:
|
|
5
|
-
matrix:
|
|
6
|
-
- RUBY_VERSION: 24
|
|
7
|
-
RAKE_TASK: spec
|
|
8
|
-
- RUBY_VERSION: 24
|
|
9
|
-
RAKE_TASK: rubocop
|
|
10
|
-
- RUBY_VERSION: 25
|
|
11
|
-
RAKE_TASK: spec
|
|
12
|
-
- RUBY_VERSION: 26
|
|
13
|
-
RAKE_TASK: spec
|
|
14
|
-
install:
|
|
15
|
-
- set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
|
|
16
|
-
- bundle config --local path vendor/bundle
|
|
17
|
-
- bundle install
|
|
18
|
-
before_test:
|
|
19
|
-
- ruby -v
|
|
20
|
-
- gem -v
|
|
21
|
-
- bundle -v
|
|
22
|
-
test_script:
|
|
23
|
-
- bundle exec rake %RAKE_TASK%
|