Class: Selenium::WebDriver::BiDi::BrowsingContext
- Inherits:
-
Object
- Object
- Selenium::WebDriver::BiDi::BrowsingContext
- Defined in:
- lib/selenium/webdriver/bidi/browsing_context.rb
Constant Summary collapse
- READINESS_STATE =
{ none: 'none', interactive: 'interactive', complete: 'complete' }.freeze
Instance Attribute Summary collapse
-
#id ⇒ Object
Returns the value of attribute id.
Instance Method Summary collapse
- #close ⇒ Object
- #get_tree(max_depth: nil) ⇒ Object
-
#initialize(driver:, browsing_context_id: nil, type: nil, reference_context: nil) ⇒ BrowsingContext
constructor
A new instance of BrowsingContext.
- #navigate(url:, readiness_state: nil) ⇒ Object
Constructor Details
#initialize(driver:, browsing_context_id: nil, type: nil, reference_context: nil) ⇒ BrowsingContext
Returns a new instance of BrowsingContext.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/selenium/webdriver/bidi/browsing_context.rb', line 35 def initialize(driver:, browsing_context_id: nil, type: nil, reference_context: nil) unless driver.capabilities.web_socket_url raise Error::WebDriverError, 'WebDriver instance must support BiDi protocol' end unless type.nil? || %i[window tab].include?(type) raise ArgumentError, "Valid types are :window & :tab. Received: #{type.inspect}" end @bidi = driver.bidi @id = browsing_context_id.nil? ? create(type, reference_context)['context'] : browsing_context_id end |
Instance Attribute Details
#id ⇒ Object
Returns the value of attribute id.
27 28 29 |
# File 'lib/selenium/webdriver/bidi/browsing_context.rb', line 27 def id @id end |
Instance Method Details
#close ⇒ Object
76 77 78 |
# File 'lib/selenium/webdriver/bidi/browsing_context.rb', line 76 def close @bidi.send_cmd('browsingContext.close', context: @id) end |
#get_tree(max_depth: nil) ⇒ Object
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/selenium/webdriver/bidi/browsing_context.rb', line 65 def get_tree(max_depth: nil) result = @bidi.send_cmd('browsingContext.getTree', root: @id, maxDepth: max_depth).dig('contexts', 0) BrowsingContextInfo.new( id: result['context'], url: result['url'], children: result['children'], parent_context: result['parent'] ) end |
#navigate(url:, readiness_state: nil) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/selenium/webdriver/bidi/browsing_context.rb', line 50 def navigate(url:, readiness_state: nil) unless readiness_state.nil? || READINESS_STATE.key?(readiness_state) raise ArgumentError, "Valid readiness states are :none, :interactive & :complete. Received: #{readiness_state.inspect}" end navigate_result = @bidi.send_cmd('browsingContext.navigate', context: @id, url: url, wait: READINESS_STATE[readiness_state]) NavigateResult.new( url: navigate_result['url'], navigation_id: navigate_result['navigation'] ) end |