Solved by the following configuration.
It appeared that basic selenium
settings can be set in default
to be used for several local environments, and also, its particular fields like host and port can be overridden in selenoid
environments:
test_settings: {
default: {
disable_error_log: false,
launch_url: 'https://my-url.com',
selenium: {
host: "localhost",
port: 4444,
start_process: true,
server_path: "node_modules/selenium-server/lib/runner/selenium-server-standalone-3.141.59.jar",
start_session: true,
log_path: "out/selenium_log",
cli_args: {
"webdriver.chrome.driver": "node_modules/chromedriver/lib/chromedriver/chromedriver.exe",
"webdriver.gecko.driver": "node_modules/geckodriver/geckodriver.exe"
}
},
desiredCapabilities: {
"browserName": "chrome", /* default browser for local run */
},
},
chrome: {
silent: true,
screenshots: {
enabled: true,
path: './screenshots/chrome/',
on_failure: true,
on_error: true,
},
desiredCapabilities: {
browserName: "chrome",
chromeOptions: {
args: [
"disable-web-security",
"ignore-certificate-errors",
"--test-type"
],
"prefs": {
"protocol_handler": {
"allowed_origin_protocol_pairs": allowedProtocols
},
},
"w3c": false,
}
}
},
firefox: {
screenshots: {
enabled: true,
path: './screenshots/firefox/',
on_failure: true,
on_error: true,
},
desiredCapabilities: {
browserName: "firefox",
alwaysMatch: {
"moz:firefoxOptions": {
args: [
"--headless",
"--width=1920",
"--height=1080"
],
}
}
}
},
selenoidChrome: {
selenium: {
start_process: false,
host: "selenoid-host",
port: 4444,
live_output: true,
},
screenshots: {
enabled: true,
path: './screenshots/selenoidChrome',
on_failure: true,
on_error: true,
},
desiredCapabilities: {
"enableVNC": true,
"browserName": "chrome",
"enableLog": true,
"enableVideo": true,
},
},
selenoidFirefox: {
extends: 'selenoidChrome',
screenshots: {
path: './screenshots/selenoidFirefox',
},
desiredCapabilities: {
"browserName": "firefox",
}
},
},