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, **opts) ⇒ 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, **opts) ⇒ Driver
# File 'rb/lib/selenium/webdriver/remote/driver.rb', line 33
def initialize(capabilities: nil, options: nil, service: nil, url: nil, **opts) 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, **opts) @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