Class: WebDriverManager::GeckoDriver
- Inherits:
-
Object
- Object
- WebDriverManager::GeckoDriver
show all
- Extended by:
- Support
- Defined in:
- lib/webdriver_manager/drivers/driver_gecko.rb
Class Method Summary
collapse
Methods included from Support
latest_binary, provision, provision_driver, remove_binary
Class Method Details
.current_binary ⇒ Object
8
9
10
11
12
13
14
15
16
|
# File 'lib/webdriver_manager/drivers/driver_gecko.rb', line 8
def current_binary
WebDriverManager.logger.debug("Checking Current Driver Version")
return nil unless driver_is_downloaded?
binary_version = `#{driver_binary} --version`
WebDriverManager.logger.debug(
"Current version of #{driver_binary} is #{binary_version}"
)
normalize(binary_version.match(/geckodriver (\d+\.\d+\.\d+)/)[1])
end
|
.driver_base_url ⇒ Object
22
23
24
|
# File 'lib/webdriver_manager/drivers/driver_gecko.rb', line 22
def driver_base_url
"https://github.com/mozilla/geckodriver/releases"
end
|
.driver_binary_list ⇒ Object
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/webdriver_manager/drivers/driver_gecko.rb', line 26
def driver_binary_list
unless driver_url_is_reachable?
raise StandardError, "Unable to Access the Driver URL"
end
@binaries ||= begin
files = process_binary_files
process_binary_versions(files)
end
end
|
.driver_name ⇒ Object
18
19
20
|
# File 'lib/webdriver_manager/drivers/driver_gecko.rb', line 18
def driver_name
os_platform == "win" ? "geckodriver.exe" : "geckodriver"
end
|
.normalize(string) ⇒ Object
58
59
60
61
62
|
# File 'lib/webdriver_manager/drivers/driver_gecko.rb', line 58
def normalize(string)
string.match(/(\d+)\.(\d+\.\d+)/)
.to_a
.map { |v| v.tr('.', '') }[1..-1].join('.').to_f
end
|
.process_binary_files ⇒ Object
37
38
39
40
41
42
43
|
# File 'lib/webdriver_manager/drivers/driver_gecko.rb', line 37
def process_binary_files
resource = Nokogiri::XML.parse(get(driver_base_url))
files = resource.css(".release-downloads a")
.collect { |file| file["href"] }
files.reject! { |file| file.include?('archive') }
files.select! { |file| file.include?(os_platform) }
end
|
.process_binary_versions(files) ⇒ Object
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/webdriver_manager/drivers/driver_gecko.rb', line 45
def process_binary_versions(files)
binary_list = files.each_with_object({}) do |file, binary|
version = normalize(file[/v(\d+\.\d+\.\d+)/, 1])
binary[version] = "https://github.com#{file}"
end
WebDriverManager.logger.debug(
"Versions Located at Driver URL: #{binary_list.keys}"
)
binary_list
end
|