Pass Chrome options as capabilities
Sometimes there is a need to use Chrome options which are not a part of standard capabilities.
Solution
Starting Selenium version 3.6.0, the ChromeOptions class in Java also implements the Capabilities interface, allowing you to specify other WebDriver capabilities not specific to ChromeDriver.
The code example below shows the passing Chrome Options as capabilities:
Copy
Chrome Options with switches
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
options.addArguments("--start-maximized");
options.addArguments("--disable-web-security");
options.addArguments("--allow-insecure-localhost");
options.addArguments("--ignore-urlfetcher-cert-requests")
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
Copy
Chrome Options with preferences
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("ssl.error_override_allowed", true);
options.setExperimentalOption("prefs", prefs);
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
Copy
Chrome Options with switches Protractor JS
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: [ "--headless",
"--disable-gpu",
"--window-size=800,600",
"--debuggerAddress=127.0.0.1:12633" ]
}
}
Copy
Chrome://flags Chrome driver Protractor JS example
capabilities: {
'platformName' : 'Windows',
'platformVersion' : '10',
'browserName' : 'Chrome',
'browserVersion' : '77',
'resolution' : '1280x1024',
'location' : 'US East',
securityToken: '',
"goog:chromeOptions": {
args: ["" ],
extensions: []
}
},
More information on Chrome driver capabilities, complete list of switches & preferences options:
- https://chromedriver.chromium.org/capabilities
- https://peter.sh/experiments/chromium-command-line-switches/#user-agent
All preferences:
All switches:
Related Articles
See the Perfecto Knowledgebase.