How to programmatically configure Chrome extension through Selenium WebDriver?

We can programmatically configure Chrome extension through Selenium webdriver. We can have multiple extensions of the Chrome browser while we manually open the browser and work on it.

However, while the Chrome browser is opened through Selenium webdriver, those extensions which are available to the local browser will not be present. To configure an extension, we have to obtain the .crx extension file of the extension.

Then we have to add that extension to the browser which is launched by Selenium webdriver. To get all the extensions available to the browser enter

chrome://extensions on the browser.

To get add an extension for example: Momentum, visit the link − and enter Momentum in the search box. Once the search results are displayed, click on the relevant option.

After clicking on the Momentum extension, the details of the extension gets displayed. Copy the URL of the extension as highlighted in the below image.

Now, navigate to the link: https://chrome−extension− and paste the URL we have copied within the Download extension field.

The .crx file of the extension gets downloaded to our system. We should then save it in a desired location.

To add this extension to the Chrome browser, once it is launched by Selenium webdriver, we have to use the ChromeOptions class. We shall create an object of this class and apply addExtensions method on it.

The path of the .crx file of the extension that we want to add is passed as a parameter to that method. Then use the DesiredCapabilities class to set this browser capability.

We shall apply the setCapability method on the object of DesiredCapabilities and pass ChromeOptions.CAPABILITY and object of the ChromeOptions class as parameters to that method. Finally, the object of DesiredCapabilities is passed as a parameter to the webdriver object.


import org.openqa.selenium.WebDriver;
import org.openqa.selenium.Capabilities;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
public class AddExtensns{
   public static void main(String[] args) {
      //ChromeOptions object
      ChromeOptions opt= new ChromeOptions();
      //set path of .crx file of extension
      opt.addExtensions(new File("C:\Users\Momentum_v0.92.2.crx"));
      //DesiredCapabilities object
      DesiredCapabilities c =;
      // set ChromeOptions capability
      c.setCapability(ChromeOptions.CAPABILITY, opt);
      // pass capability to driver
      WebDriver driver = new ChromeDriver(c);