webdriver_manager 0.4.0 → 0.5.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/.hound.yml +20 -0
- data/README.md +1 -1
- data/lib/webdriver_manager/drivers/driver_ie.rb +63 -0
- data/lib/webdriver_manager/drivers/driver_ms.rb +61 -0
- data/lib/webdriver_manager/selenium.rb +14 -0
- data/lib/webdriver_manager/version.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4db41bdf6056193f150935eae93cdb91d6437f37f0c8de8e75f367b5d326405c
|
4
|
+
data.tar.gz: 7b9367d90bcb4ac43ec51c372891d15cc9faecaa121bd9ea8b5910cc870cf73f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b19925b90a00db76eda16ce8598868e3c40511ea446a3e3094cc66eb4bfceaa03daac2d7137198da4bf21ad2a333fb983e69830bef1364c0552398f3e9a33ae8
|
7
|
+
data.tar.gz: c5e8fc096fbf61603ca22dc9907ca9c00a1576c2cc512f9e0213e8e80dda7dfd190a0bf49ddf9378e79f8977b3d0a07f631bdf48a0d98fb1a0f28d6a95a06506
|
data/.hound.yml
CHANGED
@@ -65,3 +65,23 @@ Metrics/ParameterLists:
|
|
65
65
|
|
66
66
|
Metrics/ModuleLength:
|
67
67
|
Max: 135
|
68
|
+
|
69
|
+
Style/NumericLiterals:
|
70
|
+
Enabled: False
|
71
|
+
|
72
|
+
Metrics/LineLength:
|
73
|
+
Max: 90
|
74
|
+
|
75
|
+
# Currently only for the MSDriver. Will refactor
|
76
|
+
# to remove the need for this.
|
77
|
+
Metrics/MethodLength:
|
78
|
+
Max: 32
|
79
|
+
|
80
|
+
Metrics/AbcSize:
|
81
|
+
Max: 24
|
82
|
+
|
83
|
+
Metrics/CyclomaticComplexity:
|
84
|
+
Max: 8
|
85
|
+
|
86
|
+
Style/CommandLiteral:
|
87
|
+
Enabled: False
|
data/README.md
CHANGED
@@ -44,7 +44,7 @@ All driver binaries are placed in a `.webdrivers` directory within the relevant
|
|
44
44
|
|
45
45
|
### Browser Drivers Supported
|
46
46
|
|
47
|
-
Currently WebDriver Manager supports
|
47
|
+
Currently WebDriver Manager supports Chrome (chromedriver), Firefox (geckodriver), Internet Explorer (IEDriverServer), and Edge (MicrosoftWebDriver). The support for Internet Explorer and Edge is a bit of a work in progress but, overall, they should work in terms of getting the appropriate driver.
|
48
48
|
|
49
49
|
### Logging
|
50
50
|
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require "nokogiri"
|
2
|
+
|
3
|
+
module WebDriverManager
|
4
|
+
class IEDriver
|
5
|
+
extend Support
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def current_binary
|
9
|
+
WebDriverManager.logger.debug("Checking Current Driver Version")
|
10
|
+
return nil unless driver_is_downloaded?
|
11
|
+
binary_version = `#{driver_binary} --version`
|
12
|
+
WebDriverManager.logger.debug(
|
13
|
+
"Current version of #{driver_binary} is #{binary_version}"
|
14
|
+
)
|
15
|
+
normalize(
|
16
|
+
binary_version.match(/IEDriverServer.exe (\d\.\d+\.\d*\.\d*)/)[1]
|
17
|
+
)
|
18
|
+
end
|
19
|
+
|
20
|
+
def normalize(string)
|
21
|
+
string.to_f
|
22
|
+
end
|
23
|
+
|
24
|
+
def driver_name
|
25
|
+
"IEDriverServer.exe"
|
26
|
+
end
|
27
|
+
|
28
|
+
def driver_base_url
|
29
|
+
"http://selenium-release.storage.googleapis.com"
|
30
|
+
end
|
31
|
+
|
32
|
+
def driver_binary_list
|
33
|
+
unless driver_url_is_reachable?
|
34
|
+
raise StandardError, "Unable to Access the Driver URL"
|
35
|
+
end
|
36
|
+
|
37
|
+
@binaries ||= begin
|
38
|
+
files = process_binary_files
|
39
|
+
process_binary_versions(files)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def process_binary_files
|
44
|
+
resource = Nokogiri::XML.parse(get(driver_base_url))
|
45
|
+
files = resource.css("Key").collect(&:text)
|
46
|
+
files.select! { |file| file.include?("IEDriverServer_Win32") }
|
47
|
+
end
|
48
|
+
|
49
|
+
def process_binary_versions(files)
|
50
|
+
binary_list = files.each_with_object({}) do |file, binary|
|
51
|
+
version = normalize(file[%r{^[^\/]+}])
|
52
|
+
binary[version] = "#{driver_base_url}/#{file}"
|
53
|
+
end
|
54
|
+
|
55
|
+
WebDriverManager.logger.debug(
|
56
|
+
"Versions Located at Driver URL: #{binary_list.keys}"
|
57
|
+
)
|
58
|
+
|
59
|
+
binary_list
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module WebDriverManager
|
2
|
+
class MSDriver
|
3
|
+
extend Support
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def current_binary
|
7
|
+
WebDriverManager.logger.debug("Checking Current Driver Version")
|
8
|
+
windows_version = %x(ver)
|
9
|
+
WebDriverManager.logger.debug(
|
10
|
+
"Current version of Windows is #{windows_version}"
|
11
|
+
)
|
12
|
+
windows_version[/\d+\.\d+\.\d+/][/[^\.]\d+$/]
|
13
|
+
end
|
14
|
+
|
15
|
+
def driver_name
|
16
|
+
"MicrosoftWebDriver.exe"
|
17
|
+
end
|
18
|
+
|
19
|
+
def driver_base_url
|
20
|
+
"https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/#downloads"
|
21
|
+
end
|
22
|
+
|
23
|
+
def driver_binary_list
|
24
|
+
unless driver_url_is_reachable?
|
25
|
+
raise StandardError, "Unable to Access the Driver URL"
|
26
|
+
end
|
27
|
+
|
28
|
+
url = ""
|
29
|
+
|
30
|
+
case current_binary.to_i
|
31
|
+
when 10240
|
32
|
+
WebDriverManager.logger.debug("Downloading 10240 MS WebDriver.")
|
33
|
+
build = "8D0D08CF-790D-4586-B726-C6469A9ED49C/MicrosoftWebDriver.msi"
|
34
|
+
url = "https://download.microsoft.com/download/8/D/0/#{build}"
|
35
|
+
when 10586
|
36
|
+
WebDriverManager.logger.debug("Downloading 10586 MS WebDriver.")
|
37
|
+
build = "C07EBF21-5305-4EC8-83B1-A6FCC8F93F45/MicrosoftWebDriver.msi"
|
38
|
+
url = "https://download.microsoft.com/download/C/0/7/#{build}"
|
39
|
+
when 14393
|
40
|
+
WebDriverManager.logger.debug("Downloading 14393 MS WebDriver.")
|
41
|
+
build = "32D3E464-F2EF-490F-841B-05D53C848D15/MicrosoftWebDriver.exe"
|
42
|
+
url = "https://download.microsoft.com/download/3/2/D/#{build}"
|
43
|
+
when 15063
|
44
|
+
WebDriverManager.logger.debug("Downloading 15063 MS WebDriver.")
|
45
|
+
build = "342316D7-EBE0-4F10-ABA2-AE8E0CDF36DD/MicrosoftWebDriver.exe"
|
46
|
+
url = "https://download.microsoft.com/download/3/4/2/#{build}"
|
47
|
+
when 16299
|
48
|
+
WebDriverManager.logger.debug("Downloading 16299 MS WebDriver.")
|
49
|
+
build = "D417998A-58EE-4EFE-A7CC-39EF9E020768/MicrosoftWebDriver.exe"
|
50
|
+
url = "https://download.microsoft.com/download/D/4/1/#{build}"
|
51
|
+
else
|
52
|
+
WebDriverManager.logger.debug("Downloading latest Insider driver.")
|
53
|
+
build = "14156DA0-D40F-460A-B14D-1B264CA081A5/MicrosoftWebDriver.exe"
|
54
|
+
url = "https://download.microsoft.com/download/1/4/1/#{build}"
|
55
|
+
end
|
56
|
+
|
57
|
+
@binaries = { current_binary.to_i => url }
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -3,6 +3,8 @@ require "selenium-webdriver"
|
|
3
3
|
require "webdriver_manager/support"
|
4
4
|
require "webdriver_manager/drivers/driver_chrome"
|
5
5
|
require "webdriver_manager/drivers/driver_gecko"
|
6
|
+
require "webdriver_manager/drivers/driver_ie"
|
7
|
+
require "webdriver_manager/drivers/driver_ms"
|
6
8
|
|
7
9
|
module Selenium
|
8
10
|
module WebDriver
|
@@ -17,5 +19,17 @@ module Selenium
|
|
17
19
|
@driver_path ||= WebDriverManager::GeckoDriver.provision
|
18
20
|
end
|
19
21
|
end
|
22
|
+
|
23
|
+
module IE
|
24
|
+
def self.driver_path
|
25
|
+
@driver_path ||= WebDriverManager::IEDriver.provision
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
module Edge
|
30
|
+
def self.driver_path
|
31
|
+
@driver_path ||= WebDriverManager::MSDriver.provision
|
32
|
+
end
|
33
|
+
end
|
20
34
|
end
|
21
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webdriver_manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Nyman
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -144,6 +144,8 @@ files:
|
|
144
144
|
- lib/webdriver_manager.rb
|
145
145
|
- lib/webdriver_manager/drivers/driver_chrome.rb
|
146
146
|
- lib/webdriver_manager/drivers/driver_gecko.rb
|
147
|
+
- lib/webdriver_manager/drivers/driver_ie.rb
|
148
|
+
- lib/webdriver_manager/drivers/driver_ms.rb
|
147
149
|
- lib/webdriver_manager/logger.rb
|
148
150
|
- lib/webdriver_manager/selenium.rb
|
149
151
|
- lib/webdriver_manager/support.rb
|
@@ -154,7 +156,7 @@ licenses:
|
|
154
156
|
- MIT
|
155
157
|
metadata: {}
|
156
158
|
post_install_message: "\n(::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::)\n
|
157
|
-
\ WebDriver Manager 0.
|
159
|
+
\ WebDriver Manager 0.5.0 has been installed.\n(::) (::) (::) (::) (::) (::) (::)
|
158
160
|
(::) (::) (::) (::) (::)\n "
|
159
161
|
rdoc_options: []
|
160
162
|
require_paths:
|
@@ -171,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
173
|
version: '0'
|
172
174
|
requirements: []
|
173
175
|
rubyforge_project:
|
174
|
-
rubygems_version: 2.
|
176
|
+
rubygems_version: 2.7.3
|
175
177
|
signing_key:
|
176
178
|
specification_version: 4
|
177
179
|
summary: Provides a method of automatically downloading WebDriver binaries.
|