class Selenium::WebDriver::Driver
def [](sel)
def [](sel) sel = {id: sel} if sel.is_a?(String) || sel.is_a?(Symbol) find_element sel end
def action(**opts)
def action(**opts) bridge.action(**opts) end
def add_extensions(browser)
def add_extensions(browser) extensions = case browser when :chrome, :chrome_headless_shell, :msedge, :microsoftedge Chromium::Driver::EXTENSIONS when :firefox Firefox::Driver::EXTENSIONS when :safari, :safari_technology_preview Safari::Driver::EXTENSIONS when :ie, :internet_explorer IE::Driver::EXTENSIONS else [] end extensions.each { |extension| extend extension } end
def add_virtual_authenticator(options)
def add_virtual_authenticator(options) bridge.add_virtual_authenticator(options) end
def browser
def browser bridge.browser end
def capabilities
def capabilities bridge.capabilities end
def close
def close bridge&.close end
def create_bridge(caps:, url:, http_client: nil)
def create_bridge(caps:, url:, http_client: nil) klass = caps['webSocketUrl'] ? Remote::BiDiBridge : Remote::Bridge klass.new(http_client: http_client, url: url).tap do |bridge| bridge.create_session(caps) end end
def current_url
def current_url bridge.url end
def execute_async_script(script, *args)
def execute_async_script(script, *args) bridge.execute_async_script(script, *args) end
def execute_script(script, *args)
def execute_script(script, *args) bridge.execute_script(script, *args) end
def for(browser, opts = {})
def for(browser, opts = {}) case browser when :chrome, :chrome_headless_shell Chrome::Driver.new(**opts) when :internet_explorer, :ie IE::Driver.new(**opts) when :safari Safari::Driver.new(**opts) when :firefox, :ff Firefox::Driver.new(**opts) when :edge, :microsoftedge, :msedge Edge::Driver.new(**opts) when :remote Remote::Driver.new(**opts) else raise ArgumentError, "unknown driver: #{browser.inspect}" end end
def get(url)
def get(url) navigate.to(url) end
def initialize(bridge: nil, listener: nil, **opts)
def initialize(bridge: nil, listener: nil, **opts) @devtools = nil bridge ||= create_bridge(**opts) @bridge = listener ? Support::EventFiringBridge.new(bridge, listener) : bridge add_extensions(@bridge.browser) end
def inspect
def inspect format '#<%<class>s:0x%<hash>x browser=%<browser>s>', class: self.class, hash: hash * 2, browser: bridge.browser.inspect end
def manage
def manage bridge.manage end
def navigate
def navigate @navigate ||= WebDriver::Navigation.new(bridge) end
def network
def network @network ||= WebDriver::Network.new(bridge) end
def page_source
def page_source bridge.page_source end
def quit
def quit bridge.quit ensure @service_manager&.stop @devtools&.close end
def ref
def ref [:driver, nil] end
def screenshot
def screenshot bridge.screenshot end
def script(*args)
def script(*args) if args.any? WebDriver.logger.deprecate('`Driver#script` as an alias for `#execute_script`', '`Driver#execute_script`', id: :driver_script) execute_script(*args) else @script ||= WebDriver::Script.new(bridge) end end
def service_url(service)
def service_url(service) @service_manager = service.launch @service_manager.uri end
def status
-
(Hash)-
def status @bridge.status end
def switch_to
def switch_to @switch_to ||= WebDriver::TargetLocator.new(bridge) end
def title
def title bridge.title end
def window_handle
def window_handle bridge.window_handle end
def window_handles
def window_handles bridge.window_handles end