Using Extensions with Selenium & Python

We can use extensions with Selenium webdriver in Python. 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 perform installation of the extension to the browser which is launched by Selenium. To get all the extensions available to the browser enter chrome://extensions on the browser address bar.

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 Options class. We shall create an object of this class and apply add_extension 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. Finally, this information is passed to the webdriver object.


from selenium import webdriver
from import Options
#object of Options class
op = Options()
#set .crx file path of extension
#set geckodriver.exe path
driver = webdriver.Firefox(executable_path="C:\geckodriver.exe",
#launch browser