From ac61662cc643281e60d30e6d7d5d63549197d570 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Fri, 9 May 2025 17:53:32 +0100 Subject: [PATCH] Let firefox choose the bidi port by default If the user hasn't asked for a specific port then just let firefox choose a random one. --- rb/lib/selenium/webdriver/firefox/service.rb | 4 ++-- .../selenium/webdriver/firefox/service_spec.rb | 15 --------------- .../selenium/webdriver/firefox/service_spec.rb | 12 ++++++++++-- 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/rb/lib/selenium/webdriver/firefox/service.rb b/rb/lib/selenium/webdriver/firefox/service.rb index 45fc17a38547d..d9765f41e4570 100644 --- a/rb/lib/selenium/webdriver/firefox/service.rb +++ b/rb/lib/selenium/webdriver/firefox/service.rb @@ -28,9 +28,9 @@ class Service < WebDriver::Service def initialize(path: nil, port: nil, log: nil, args: nil) args ||= [] - unless args.any? { |arg| arg.include?('--connect-existing') } + unless args.any? { |arg| arg.include?('--connect-existing') || arg.include?('--websocket-port') } args << '--websocket-port' - args << WebDriver::PortProber.above(9222).to_s + args << '0' end super end diff --git a/rb/spec/integration/selenium/webdriver/firefox/service_spec.rb b/rb/spec/integration/selenium/webdriver/firefox/service_spec.rb index 7f9efb8eecbda..7c14994c56ae3 100644 --- a/rb/spec/integration/selenium/webdriver/firefox/service_spec.rb +++ b/rb/spec/integration/selenium/webdriver/firefox/service_spec.rb @@ -39,21 +39,6 @@ module Firefox it 'can be started outside driver' do expect(service_manager.uri).to be_a(URI) end - - context 'with BiDi enabled', exclusive: {bidi: true, reason: 'only executed when bidi is enabled'} do - it 'ensures two service instances use different websocket port' do - service1 = described_class.new - service2 = described_class.new - - ws_index1 = service1.args.index('--websocket-port') - ws_index2 = service2.args.index('--websocket-port') - - port1 = service1.args[ws_index1 + 1].to_i - port2 = service2.args[ws_index2 + 1].to_i - - expect(port1).not_to eq(port2) - end - end end end # Firefox end # WebDriver diff --git a/rb/spec/unit/selenium/webdriver/firefox/service_spec.rb b/rb/spec/unit/selenium/webdriver/firefox/service_spec.rb index 674e8b654192d..2e41495fdd848 100644 --- a/rb/spec/unit/selenium/webdriver/firefox/service_spec.rb +++ b/rb/spec/unit/selenium/webdriver/firefox/service_spec.rb @@ -77,11 +77,11 @@ module Firefox expect(service.extra_args).to include(*%w[--foo --bar]) end - it 'there is a random port for websocket' do + it 'there is a zero port for websocket' do service = described_class.new ws_index = service.extra_args.index('--websocket-port') port = service.extra_args[ws_index + 1].to_i - expect(port).to be_positive + expect(port).to be_zero end context 'with connect existing' do @@ -91,6 +91,14 @@ module Firefox expect(service.extra_args).to eq(['--connect-existing']) end end + + context 'with websocket port' do + it 'does not add websocket-port' do + service = described_class.new(args: ['--websocket-port=1234']) + expect(service.extra_args).not_to include('--websocket-port=0') + expect(service.extra_args).to eq(['--websocket-port=1234']) + end + end end context 'when initializing driver' do