Class: Selenium::WebDriver::Remote::Driver Private
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: | |
| Instance Chain: | |
| Inherits: | Selenium::WebDriver::Driver 
 | 
| Defined in: | rb/lib/selenium/webdriver/remote/driver.rb | 
Overview
Driver implementation for remote server.
Constant Summary
::Selenium::WebDriver::SearchContext - Included
  
Class Method Summary
- .new(capabilities: nil, options: nil, service: nil, url: nil) ⇒ Driver constructor Internal use only
::Selenium::WebDriver::Driver - Inherited
Instance Attribute Summary
::Selenium::WebDriver::DriverExtensions::UploadsFiles - Included
| #file_detector= | Set the file detector to pass local files to a remote  | 
::Selenium::WebDriver::Driver - Inherited
Instance Method Summary
- #devtools_url private Internal use only
- #devtools_version private Internal use only
- #generate_capabilities(capabilities) private Internal use only
- #process_options(options, capabilities) private Internal use only
::Selenium::WebDriver::DriverExtensions::HasFileDownloads - Included
::Selenium::WebDriver::DriverExtensions::HasSessionId - Included
::Selenium::WebDriver::Driver - Inherited
| #[] | Get the first element matching the given selector. | 
| #action, #add_virtual_authenticator, | |
| #all | driver.all(class: ‘bar’) #=> [#<WebDriver::Element:0x1011c3b88, …]. | 
| #browser, #capabilities, | |
| #close | Close the current window, or the browser if no windows are left. | 
| #current_url | Get the URL of the current page. | 
| #execute_async_script | Execute an asynchronous piece of JavaScript in the context of the currently selected frame or window. | 
| #execute_script | Execute the given JavaScript. | 
| #first | driver.first(id: ‘foo’). | 
| #get | Opens the specified URL in the browser. | 
| #inspect, #manage, #navigate, #network, | |
| #page_source | Get the source of the current page. | 
| #quit | Quit the browser. | 
| #script, | |
| #status | information about whether a remote end is in a state in which it can create new sessions, and may include additional meta information. | 
| #switch_to, | |
| #title | Get the title of the current page. | 
| #window_handle | Get the current window handle. | 
| #window_handles | Get the window handles of open browser windows. | 
| #add_extensions, #create_bridge, #screenshot, #service_url, #ref | |
::Selenium::WebDriver::TakesScreenshot - Included
| #save_screenshot | Save a PNG screenshot of the viewport to the given path. | 
| #screenshot_as | Return a PNG screenshot in the given format as a string. | 
::Selenium::WebDriver::SearchContext - Included
| #find_element | Find the first element matching the given arguments. | 
| #find_elements | Find all elements matching the given arguments. | 
| #extract_args | |
Constructor Details
    .new(capabilities: nil, options: nil, service: nil, url: nil)  ⇒ Driver 
  
# File 'rb/lib/selenium/webdriver/remote/driver.rb', line 33
def initialize(capabilities: nil, options: nil, service: nil, url: nil, **) raise ArgumentError, "Can not set :service object on #{self.class}" if service url ||= "http://#{Platform.localhost}:4444/wd/hub" caps = (, capabilities) super(caps: caps, url: url, **) @bridge.file_detector = ->((filename, *)) { File.exist?(filename) && filename.to_s } command_list = @bridge.command_list @bridge.extend(WebDriver::Remote::Features) @bridge.add_commands(command_list) end
Instance Method Details
#devtools_url (private)
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/driver.rb', line 47
def devtools_url capabilities['se:cdp'] end
#devtools_version (private)
# File 'rb/lib/selenium/webdriver/remote/driver.rb', line 51
def devtools_version cdp_version = capabilities['se:cdpVersion']&.split('.')&.first raise Error::WebDriverError, 'DevTools is not supported by the Remote Server' unless cdp_version Integer(cdp_version) end
#generate_capabilities(capabilities) (private)
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/driver.rb', line 68
def generate_capabilities(capabilities) Array(capabilities).map { |cap| if cap.is_a? Symbol cap = WebDriver::Options.send(cap) elsif !cap.respond_to? :as_json msg = ":capabilities parameter only accepts objects responding to #as_json which #{cap.class} does not" raise ArgumentError, msg end cap.as_json }.inject(:merge) end
#process_options(options, capabilities) (private)
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/driver.rb', line 58
def (, capabilities) if && capabilities msg = "Don't use both :options and :capabilities when initializing #{self.class}, prefer :options" raise ArgumentError, msg elsif .nil? && capabilities.nil? raise ArgumentError, "#{self.class} needs :options to be set" end ? .as_json : generate_capabilities(capabilities) end