How to Set Chrome Options in Selenium for Browser Automation
To set Chrome options in Selenium, create a
ChromeOptions object, configure desired settings like headless mode or window size, then pass it to the ChromeDriver constructor. This lets you customize Chrome browser behavior during automation.Syntax
Use the ChromeOptions class to set browser preferences. Then pass the options object to the ChromeDriver constructor.
Key parts:
ChromeOptions options = new ChromeOptions();- creates options objectoptions.addArguments("--headless");- adds a command line argumentWebDriver driver = new ChromeDriver(options);- starts Chrome with options
java
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; public class Main { public static void main(String[] args) { ChromeOptions options = new ChromeOptions(); options.addArguments("--headless"); WebDriver driver = new ChromeDriver(options); } }
Example
This example shows how to launch Chrome in headless mode and set a custom window size using Selenium.
java
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; public class ChromeOptionsExample { public static void main(String[] args) { ChromeOptions options = new ChromeOptions(); options.addArguments("--headless"); options.addArguments("--window-size=1200,800"); WebDriver driver = new ChromeDriver(options); driver.get("https://www.example.com"); System.out.println("Title: " + driver.getTitle()); driver.quit(); } }
Output
Title: Example Domain
Common Pitfalls
Common mistakes when setting Chrome options include:
- Not passing the
ChromeOptionsobject to theChromeDriverconstructor, so options are ignored. - Using incorrect argument syntax, like missing dashes (e.g., "headless" instead of "--headless").
- Forgetting to set the correct path for the ChromeDriver executable if not in system PATH.
java
/* Wrong way: options created but not used */ ChromeOptions options = new ChromeOptions(); options.addArguments("--headless"); WebDriver driver = new ChromeDriver(); // options not passed, so ignored /* Right way: pass options to driver */ WebDriver driver = new ChromeDriver(options);
Quick Reference
| Option | Description | Example |
|---|---|---|
| --headless | Run Chrome without UI | options.addArguments("--headless"); |
| --window-size=width,height | Set browser window size | options.addArguments("--window-size=1200,800"); |
| --disable-gpu | Disable GPU hardware acceleration | options.addArguments("--disable-gpu"); |
| --incognito | Open Chrome in incognito mode | options.addArguments("--incognito"); |
| setExperimentalOption | Set experimental options like prefs | options.setExperimentalOption("prefs", prefsMap); |
Key Takeaways
Create a ChromeOptions object to customize Chrome browser settings in Selenium.
Always pass the ChromeOptions object to the ChromeDriver constructor to apply settings.
Use addArguments with double dashes (e.g., "--headless") for command line options.
Common options include headless mode, window size, and disabling GPU.
Check ChromeDriver path setup if browser does not launch.