class Selenium::WebDriver::Firefox::Driver
Driver implementation for Firefox using GeckoDriver. @api private
Constants
- EXTENSIONS
Public Class Methods
new(capabilities: nil, options: nil, service: nil, url: nil, **opts)
click to toggle source
Calls superclass method
Selenium::WebDriver::Driver::new
# File lib/selenium/webdriver/firefox/driver.rb, line 39 def initialize(capabilities: nil, options: nil, service: nil, url: nil, **opts) raise ArgumentError, "Can't initialize #{self.class} with :url" if url caps = process_options(options, capabilities) url = service_url(service || Service.firefox) super(caps: caps, url: url, **opts) end
Public Instance Methods
browser()
click to toggle source
# File lib/selenium/webdriver/firefox/driver.rb, line 47 def browser :firefox end
Private Instance Methods
devtools_url()
click to toggle source
# File lib/selenium/webdriver/firefox/driver.rb, line 53 def devtools_url if capabilities['moz:debuggerAddress'].nil? raise(Error::WebDriverError, 'DevTools is not supported by this version of Firefox; use v85 or higher') end uri = URI("http://#{capabilities['moz:debuggerAddress']}") response = Net::HTTP.get(uri.hostname, '/json/version', uri.port) JSON.parse(response)['webSocketDebuggerUrl'] end
devtools_version()
click to toggle source
# File lib/selenium/webdriver/firefox/driver.rb, line 64 def devtools_version Firefox::DEVTOOLS_VERSION end
process_options(options, capabilities)
click to toggle source
Calls superclass method
Selenium::WebDriver::Driver#process_options
# File lib/selenium/webdriver/firefox/driver.rb, line 68 def process_options(options, capabilities) if options && !options.is_a?(Options) raise ArgumentError, ":options must be an instance of #{Options}" elsif options.nil? && capabilities.nil? options = Options.new end super(options, capabilities) end