diff --git a/rb/lib/selenium/webdriver/bidi/browsing_context.rb b/rb/lib/selenium/webdriver/bidi/browsing_context.rb index 6bdd0b3049ae6..ed59d23b381e8 100644 --- a/rb/lib/selenium/webdriver/bidi/browsing_context.rb +++ b/rb/lib/selenium/webdriver/bidi/browsing_context.rb @@ -104,6 +104,11 @@ def set_viewport(context_id: nil, width: nil, height: nil, device_pixel_ratio: n def handle_user_prompt(context_id, accept: true, text: nil) @bidi.send_cmd('browsingContext.handleUserPrompt', context: context_id, accept: accept, text: text) end + + def activate(context_id: nil) + context_id ||= @bridge.window_handle + @bidi.send_cmd('browsingContext.activate', context: context_id) + end end end # BiDi end # WebDriver diff --git a/rb/sig/lib/selenium/webdriver/bidi/browsing_context.rbs b/rb/sig/lib/selenium/webdriver/bidi/browsing_context.rbs index 89d37bcab3745..6179da3ce8fe7 100644 --- a/rb/sig/lib/selenium/webdriver/bidi/browsing_context.rbs +++ b/rb/sig/lib/selenium/webdriver/bidi/browsing_context.rbs @@ -10,6 +10,8 @@ module Selenium def handle_user_prompt: (String context, bool accept, String text) -> untyped + def activate: (String? context_id) -> Hash[nil, nil] + def navigate: (String url, String? context_id) -> void def set_viewport: (String context_id, Integer width, Integer height, Float device_pixel_ratio) -> Hash[nil, nil] diff --git a/rb/spec/integration/selenium/webdriver/bidi/browsing_context_spec.rb b/rb/spec/integration/selenium/webdriver/bidi/browsing_context_spec.rb index bf27cec8278d5..7a1e8549d760e 100644 --- a/rb/spec/integration/selenium/webdriver/bidi/browsing_context_spec.rb +++ b/rb/spec/integration/selenium/webdriver/bidi/browsing_context_spec.rb @@ -115,6 +115,17 @@ class BiDi expect(driver.page_source).to include('goodbye') end end + + it 'activates a browser context' do + reset_driver!(web_socket_url: true) do |driver| + browsing_context = described_class.new(driver) + browsing_context.create + + expect(driver.execute_script('return document.hasFocus();')).to be_falsey + browsing_context.activate + expect(driver.execute_script('return document.hasFocus();')).to be_truthy + end + end end end # BiDi end # WebDriver