Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions javascript/selenium-webdriver/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ const BrowsingContext = require('./bidi/browsingContext')
const BrowsingContextInspector = require('./bidi/browsingContextInspector')
const ScriptManager = require('./bidi/scriptManager')
const NetworkInspector = require('./bidi/networkInspector')
const portprober = require('./net/portprober')
const version = require('./package.json').version

const Browser = capabilities.Browser
Expand Down Expand Up @@ -679,6 +680,15 @@ class Builder {
if (this.firefoxService_) {
service = this.firefoxService_.build()
}

// Find a free port before starting Firefox
const port = portprober.findFreePort();

// Allocate a free port for the websocket only when not connecting to an existing instance
// This avoids conflicts when multiple Firefox instances have started
if (!service?.options_.args.includes('--connect-existing')) {
service?.addArguments('--websocket-port', `${port}`)
}
return createDriver(firefox.Driver, capabilities, service)
}

Expand Down
Loading