How to Use Options in Selenium Python for Browser Configuration
In Selenium Python, use
Options classes like ChromeOptions or FirefoxOptions to customize browser settings before launching. Create an options object, set desired preferences, then pass it to the WebDriver constructor with the options parameter.Syntax
To use options in Selenium Python, first import the appropriate Options class for your browser. Then create an instance of this class, set options using its methods, and pass it to the WebDriver.
- Import Options: Import
Optionsfrom the browser module (e.g.,selenium.webdriver.chrome.options). - Create Options Object: Instantiate the options class (e.g.,
options = Options()). - Set Options: Use methods like
add_argument()to add flags or preferences. - Pass to WebDriver: Provide the options object to the WebDriver constructor via the
optionsparameter.
python
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() options.add_argument('--headless') # Run browser in headless mode driver = webdriver.Chrome(options=options) driver.get('https://example.com') print(driver.title) driver.quit()
Output
Example Domain
Example
This example shows how to launch Chrome in headless mode with a custom window size using Selenium Python options. It opens a webpage, prints the title, and closes the browser.
python
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() options.add_argument('--headless') # Run without opening a window options.add_argument('--window-size=1200,800') # Set window size with webdriver.Chrome(options=options) as driver: driver.get('https://example.com') print(driver.title) # Outputs the page title
Output
Example Domain
Common Pitfalls
- Not passing options to WebDriver: Creating options but forgetting to pass them to the driver means settings won't apply.
- Using deprecated methods: Avoid older
add_argumentalternatives; use the current API. - Incorrect argument format: Arguments must start with
--and be strings. - Mixing options and capabilities: Use options for browser flags; capabilities are different and used separately.
python
from selenium import webdriver from selenium.webdriver.chrome.options import Options # Wrong: options created but not passed options = Options() options.add_argument('--headless') driver = webdriver.Chrome() # options missing here # Right: pass options to driver options = Options() options.add_argument('--headless') driver = webdriver.Chrome(options=options)
Quick Reference
| Method | Description | Example |
|---|---|---|
| add_argument(arg) | Add command line argument to browser | options.add_argument('--headless') |
| add_experimental_option(name, value) | Set experimental options | options.add_experimental_option('prefs', {'profile.managed_default_content_settings.images': 2}) |
| set_capability(name, value) | Set WebDriver capability | options.set_capability('acceptInsecureCerts', True) |
| binary_location | Set custom browser binary path | options.binary_location = '/path/to/browser' |
Key Takeaways
Create an Options object for your browser to customize settings before launching.
Use add_argument() to add command-line flags like '--headless' or window size.
Always pass the options object to the WebDriver constructor to apply settings.
Check argument formats carefully; they must be strings starting with '--'.
Avoid mixing options with capabilities; use each for their intended purpose.