Class: Selenium::WebDriver::Remote::BiDiBridge
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Bridge
|
|
|
Instance Chain:
|
|
| Inherits: |
Selenium::WebDriver::Remote::Bridge
|
| Defined in: | rb/lib/selenium/webdriver/remote/bidi_bridge.rb |
Constant Summary
-
READINESS_STATE =
# File 'rb/lib/selenium/webdriver/remote/bidi_bridge.rb', line 29{ 'none' => :none, 'eager' => :interactive, 'normal' => :complete }.freeze
Bridge - Inherited
Class Attribute Summary
Bridge - Inherited
Class Method Summary
Bridge - Inherited
Instance Attribute Summary
- #bidi readonly
- #connection readonly
Bridge - Inherited
| #alert=, #capabilities, #file_detector, #http, | |
| #timeouts | timeouts. |
| #timeouts= | |
Instance Method Summary
- #close
- #create_session(capabilities)
- #get(url)
- #go_back
- #go_forward
- #quit
- #refresh
- #browsing_context private
- #readiness_state private
- #validated_socket_url private
Bridge - Inherited
::Selenium::WebDriver::Atoms - Included
Constructor Details
This class inherits a constructor from Selenium::WebDriver::Remote::Bridge
Instance Attribute Details
#bidi (readonly)
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/bidi_bridge.rb', line 27
attr_reader :bidi, :connection
#connection (readonly)
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/bidi_bridge.rb', line 27
attr_reader :bidi, :connection
Instance Method Details
#browsing_context (private)
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/bidi_bridge.rb', line 90
def browsing_context @browsing_context ||= BiDi::Protocol::BrowsingContext.new(connection) end
#close
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/bidi_bridge.rb', line 76
def close execute(:close_window).tap { |handles| bidi.close if handles.empty? } end
#create_session(capabilities)
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/bidi_bridge.rb', line 35
def create_session(capabilities) super begin @bidi = Selenium::WebDriver::BiDi.new(url: validated_socket_url) # Reuse the BiDi object's socket as the connection until the bridge owns it directly. @connection = @bidi.ws rescue StandardError quit raise end end
#get(url)
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/bidi_bridge.rb', line 48
def get(url) browsing_context.navigate(context: window_handle, url: url, wait: readiness_state) nil end
#go_back
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/bidi_bridge.rb', line 53
def go_back browsing_context.traverse_history(context: window_handle, delta: -1) nil end
#go_forward
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/bidi_bridge.rb', line 58
def go_forward browsing_context.traverse_history(context: window_handle, delta: 1) nil end
#quit
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/bidi_bridge.rb', line 68
def quit bidi&.close rescue *QUIT_ERRORS nil ensure super end
#readiness_state (private)
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/bidi_bridge.rb', line 94
def readiness_state READINESS_STATE.fetch(capabilities[:page_load_strategy] || 'normal') end
#refresh
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/bidi_bridge.rb', line 63
def refresh browsing_context.reload(context: window_handle, wait: readiness_state) nil end
#validated_socket_url (private)
# File 'rb/lib/selenium/webdriver/remote/bidi_bridge.rb', line 82
def validated_socket_url url = @capabilities[:web_socket_url] return url if url.is_a?(String) && url.start_with?('ws://', 'wss://') raise Error::WebDriverError, "BiDi was enabled, but the remote end did not return a valid webSocketUrl: #{url.inspect}." end